{"record":{"id":"321f1953b287cc53","repo":"Dokploy/dokploy","slug":"error-deploying-compose","errorCode":null,"errorMessage":"Error deploying Compose","messagePattern":"Error deploying Compose","errorType":"http","errorClass":null,"httpStatus":400,"severity":"error","filePath":"apps/dokploy/pages/api/deploy/compose/[refreshToken].ts","lineNumber":212,"sourceCode":"\n\t\t\tif (IS_CLOUD && composeResult.serverId) {\n\t\t\t\tjobData.serverId = composeResult.serverId;\n\t\t\t\tdeploy(jobData).catch((error) => {\n\t\t\t\t\tconsole.error(\"Background deployment failed:\", error);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tawait myQueue.add(\n\t\t\t\t\t\"deployments\",\n\t\t\t\t\t{ ...jobData },\n\t\t\t\t\t{\n\t\t\t\t\t\tremoveOnComplete: true,\n\t\t\t\t\t\tremoveOnFail: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlogWebhookError(\"Error deploying Compose:\", error);\n\t\t\tres.status(400).json({ message: \"Error deploying Compose\" });\n\t\t\treturn;\n\t\t}\n\n\t\tres.status(200).json({ message: \"Compose deployed successfully\" });\n\t} catch (error) {\n\t\tlogWebhookError(\"Error deploying Compose:\", error);\n\t\tres.status(400).json({ message: \"Error deploying Compose\" });\n\t}\n}\n","sourceCodeStart":194,"sourceCodeEnd":222,"githubUrl":"https://github.com/Dokploy/dokploy/blob/546686ea3587f12ec5652217dedd9f7960fb6d15/apps/dokploy/pages/api/deploy/compose/[refreshToken].ts#L194-L222","documentation":"Inner catch of the compose deploy webhook: preparing/enqueueing the compose deployment threw (queue add failure, invalid deployment config, malformed payload). Responds 400 'Error deploying Compose'; underlying error only in logs.","triggerScenarios":"bullmq add fails (Redis down), compose deployment record creation fails, or the webhook payload lacks expected fields during processing.","commonSituations":"Redis container stopped/restarted mid-deploy; compose missing required config (e.g. no compose file path); CI sending empty body.","solutions":["Read server logs for the logWebhookError entry with the real exception","Verify Redis availability (deployments queue)","Complete the compose configuration (source, compose type)","Send a valid test payload and retry"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if (!compose.composeType || !compose.sourceType) throw new Error('Incomplete compose config');","typeGuard":null,"tryCatchPattern":"const r = await fetch(composeDeployUrl, ...);\nif (!r.ok) { /* read logWebhookError in server logs for root cause */ }","preventionTips":["Keep Redis running and monitored","Complete compose source configuration before enabling webhooks"],"tags":["webhook","compose","deploy","queue","internal-error"],"backgroundTag":"deploy-job-enqueue-failed","analyzedSha":"546686ea3587f12ec5652217dedd9f7960fb6d15","analyzedAt":"2026-08-27T05:18:58.095Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}