diff --git a/src/apps.js b/src/apps.js index 785901406..e4fed0c75 100644 --- a/src/apps.js +++ b/src/apps.js @@ -1045,11 +1045,13 @@ function restore(appId, data, auditSource, callback) { if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new AppsError(AppsError.BAD_STATE)); // might be a bad guess if (error) return callback(new AppsError(AppsError.INTERNAL_ERROR, error)); - taskmanager.restartAppTask(appId); + startAppTask(appId, function (error) { + if (error) return callback(error); - eventlog.add(eventlog.ACTION_APP_RESTORE, auditSource, { app: app, backupId: backupInfo.id, fromManifest: app.manifest, toManifest: backupInfo.manifest }); + eventlog.add(eventlog.ACTION_APP_RESTORE, auditSource, { app: app, backupId: backupInfo.id, fromManifest: app.manifest, toManifest: backupInfo.manifest }); - callback(null); + callback(null); + }); }); }); }); diff --git a/src/apptask.js b/src/apptask.js index cb187ba02..297fe92c2 100644 --- a/src/apptask.js +++ b/src/apptask.js @@ -967,6 +967,7 @@ function run(appId, 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); + case appdb.ISTATE_PENDING_RESTORE: return install(app, progressCallback, callback); default: debugApp(app, 'apptask launched with invalid command');