diff --git a/dashcaddy-api/routes/apps/deploy.js b/dashcaddy-api/routes/apps/deploy.js index 1956000..6da19fe 100644 --- a/dashcaddy-api/routes/apps/deploy.js +++ b/dashcaddy-api/routes/apps/deploy.js @@ -197,8 +197,18 @@ module.exports = function({ docker, caddy, credentialManager, servicesStateManag } } - const container = await docker.client.createContainer(containerConfig); - await container.start(); + let container; + try { + container = await docker.client.createContainer(containerConfig); + await container.start(); + } catch (createErr) { + // If create fails with "no such image", wrap with user-friendly message + const errMsg = createErr?.message || String(createErr); + if (errMsg.includes('No such image') || errMsg.includes('no such image')) { + throw new Error(`[DC-201] Image pull succeeded but container creation failed — image may be corrupted: ${processedTemplate.docker.image}. ${errMsg}`); + } + throw createErr; + } // Prune dangling images to prevent disk bloat try {