{"record":{"id":"04b41ea87513d906","repo":"Dokploy/dokploy","slug":"internal-server-error-04b41e","errorCode":"INTERNAL_SERVER_ERROR","errorMessage":"Error on deploy mariadb${error}","messagePattern":"Error on deploy mariadb(.+?)","errorType":"exception","errorClass":"TRPCError","httpStatus":500,"severity":"critical","filePath":"packages/server/src/services/mariadb.ts","lineNumber":167,"sourceCode":"\t\t\t\t`docker pull ${quote([mariadb.dockerImage])}`,\n\t\t\t\tonData,\n\t\t\t);\n\t\t} else {\n\t\t\tawait pullImage(mariadb.dockerImage, onData);\n\t\t}\n\n\t\tawait buildMariadb(mariadb);\n\t\tawait updateMariadbById(mariadbId, {\n\t\t\tapplicationStatus: \"done\",\n\t\t});\n\t\tonData?.(\"Deployment completed successfully!\");\n\t} catch (error) {\n\t\tonData?.(`Error: ${error}`);\n\t\tawait updateMariadbById(mariadbId, {\n\t\t\tapplicationStatus: \"error\",\n\t\t});\n\n\t\tthrow new TRPCError({\n\t\t\tcode: \"INTERNAL_SERVER_ERROR\",\n\t\t\tmessage: `Error on deploy mariadb${error}`,\n\t\t});\n\t}\n\treturn mariadb;\n};\n","sourceCodeStart":149,"sourceCodeEnd":174,"githubUrl":"https://github.com/Dokploy/dokploy/blob/546686ea3587f12ec5652217dedd9f7960fb6d15/packages/server/src/services/mariadb.ts#L149-L174","documentation":"Thrown by deployMariadb when the deployment pipeline throws: it streams the error via onData, sets applicationStatus to 'error', and rethrows INTERNAL_SERVER_ERROR with the raw error appended. The actual cause (Docker, image pull, server connectivity) is in the appended text and deployment logs.","triggerScenarios":"Calling deployMariadb when the remote Docker deployment fails — unreachable destination server, MariaDB image pull failure, invalid server configuration, or a deploy script error.","commonSituations":"Destination server's Docker daemon down, no network egress to Docker Hub, insufficient disk/memory, or a MariaDB version tag that no longer pulls.","solutions":["Read the appended error and streamed deployment logs to find the failing step","Verify Docker daemon, disk, and memory on the destination server","Check image pull access (registry credentials, egress rules)","Fix and redeploy; status stays 'error' until a successful run"],"exampleFix":"// before\nawait deployMariadb(mariadbId);\n\n// after\nawait deployMariadb(mariadbId, (chunk) => console.log(chunk)); // see where it fails","handlingStrategy":"try-catch","validationCode":"const m = await findMariadbById(mariadbId);\nif (m.applicationStatus === 'error') throw new Error('Resolve prior deploy error first');","typeGuard":null,"tryCatchPattern":"try { await deployMariadb(mariadbId, onLog); } catch (e) { notify(String(e.message)); await updateMariadbById(mariadbId, { applicationStatus: 'error' }); }","preventionTips":["Stream deploy logs for later forensics","Pre-check destination server Docker health","Use retry with backoff for transient pulls"],"tags":["deployment","docker","mariadb","internal-error"],"backgroundTag":"deployment-failed-upstream-error","analyzedSha":"546686ea3587f12ec5652217dedd9f7960fb6d15","analyzedAt":"2026-08-27T05:18:58.095Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}