diff --git a/src/apps.js b/src/apps.js index 8ae7170ef..b86d45e1c 100644 --- a/src/apps.js +++ b/src/apps.js @@ -2437,9 +2437,7 @@ async function clone(app, data, user, auditSource) { const newAppId = uuid.v4(); - const icons = await getIcons(app.id); - - // label, icon, checklist intentionally omitted + // label, checklist intentionally omitted . icon is loaded in apptask from the backup const dolly = _.pick(backupInfo.appConfig || app, 'memoryLimit', 'cpuQuota', 'crontab', 'reverseProxyConfig', 'env', 'servicesConfig', 'tags', 'devices', 'enableMailbox', 'mailboxDisplayName', 'mailboxName', 'mailboxDomain', 'enableInbox', 'inboxName', 'inboxDomain', 'debugMode', 'enableTurn', 'enableRedis', 'mounts', 'enableBackup', 'enableAutomaticUpdate', 'accessRestriction', 'operators', 'sso', @@ -2456,7 +2454,6 @@ async function clone(app, data, user, auditSource) { redirectDomains: [], aliasDomains: [], label: dolly.label ? `${dolly.label}-clone` : '', - icon: icons.icon, }); const [addError] = await safe(add(newAppId, appStoreId, manifest, subdomain, domain, portBindings, obj)); diff --git a/src/apptask.js b/src/apptask.js index 621fe07a0..40edbfe71 100644 --- a/src/apptask.js +++ b/src/apptask.js @@ -366,6 +366,10 @@ async function install(app, args, progressCallback) { await services.setupAddons(app, app.manifest.addons); await services.clearAddons(app, app.manifest.addons); await backuptask.downloadApp(app, restoreConfig, (progress) => { progressCallback({ percent: 65, message: progress.message }); }); + if (app.installationState === apps.ISTATE_PENDING_CLONE) { + const customIcon = safe.fs.readFileSync(path.join(paths.APPS_DATA_DIR, app.id + '/icon.png')); + if (customIcon) await updateApp(app, { icon: customIcon }); + } await progressCallback({ percent: 70, message: 'Restoring addons' }); await services.restoreAddons(app, app.manifest.addons); }