diff --git a/src/apptask.js b/src/apptask.js index 30c3ed076..f5ae0b191 100644 --- a/src/apptask.js +++ b/src/apptask.js @@ -761,7 +761,7 @@ function migrateDataDir(app, args, progressCallback, callback) { }); } -// configure is only called for an infra update +// configure is called for an infra update and repair function configure(app, args, progressCallback, callback) { assert.strictEqual(typeof app, 'object'); assert.strictEqual(typeof args, 'object'); @@ -1064,8 +1064,12 @@ function run(appId, args, progressCallback, callback) { return uninstall(app, app.error.task.args, progressCallback, callback); } else if (app.error.task.installationState === apps.ISTATE_PENDING_DATA_DIR_MIGRATION) { return migrateDataDir(app, app.error.task.args, progressCallback, callback); - } else { + } else if (app.error.task.installationState === apps.ISTATE_PENDING_INSTALL + || app.error.task.installationState === apps.ISTATE_PENDING_CLONE + || app.error.task.installationState === apps.ISTATE_PENDING_RESTORE) { return install(app, args, progressCallback, callback); + } else { + return configure(app, args, progressCallback, callback); } case apps.ISTATE_PENDING_CONFIGURE: return configure(app, args, progressCallback, callback);