diff --git a/src/apps.js b/src/apps.js index f64a59bf8..785901406 100644 --- a/src/apps.js +++ b/src/apps.js @@ -1152,15 +1152,12 @@ function clone(appId, data, user, auditSource, callback) { purchaseApp({ appId: newAppId, appstoreId: app.appStoreId, manifestId: manifest.id }, function (error) { if (error) return callback(error); - taskmanager.restartAppTask(newAppId); - - // fetch fresh app object for eventlog - get(appId, function (error, result) { - if (error) return callback(new AppsError(AppsError.INTERNAL_ERROR, error)); + startAppTask(newAppId, function (error, result) { + if (error) return callback(error); eventlog.add(eventlog.ACTION_APP_CLONE, auditSource, { appId: newAppId, oldAppId: appId, backupId: backupId, oldApp: app, newApp: result }); - callback(null, { id : newAppId }); + callback(null, { id: newAppId }); }); }); }); diff --git a/src/apptask.js b/src/apptask.js index 32f3ed22f..cb187ba02 100644 --- a/src/apptask.js +++ b/src/apptask.js @@ -966,6 +966,7 @@ function run(appId, progressCallback, callback) { case appdb.ISTATE_PENDING_INSTALL: return install(app, progressCallback, callback); case appdb.ISTATE_PENDING_CONFIGURE: return configure(app, progressCallback, callback); case appdb.ISTATE_PENDING_UNINSTALL: return uninstall(app, progressCallback, callback); + case appdb.ISTATE_PENDING_CLONE: return install(app, progressCallback, callback); default: debugApp(app, 'apptask launched with invalid command');