diff --git a/src/apps.js b/src/apps.js index e6fcb3c78..d4eb14322 100644 --- a/src/apps.js +++ b/src/apps.js @@ -2506,6 +2506,15 @@ async function restore(app, backupId, auditSource) { const newHttpPorts = manifest.httpPorts || {}; values.secondaryDomains = app.secondaryDomains.filter(sd => sd.environmentVariable in newHttpPorts); + // prune portBindings whose tcpPorts/udpPorts no longer exist in the restored manifest + const newTcpPorts = manifest.tcpPorts || {}; + const newUdpPorts = manifest.udpPorts || {}; + const portBindings = {}; + for (const portName in app.portBindings) { + if (portName in newTcpPorts || portName in newUdpPorts) portBindings[portName] = app.portBindings[portName]; + } + values.portBindings = portBindings; + const restoreConfig = { backupId: restoreBackup.id }; const task = {