Dokploy/dokploy · critical · TRPCError
INTERNAL_SERVER_ERROR
INTERNAL_SERVER_ERROR
Error message
Error on deploy libsql${error} What it means
Thrown by deployLibsql when any step of the deployment pipeline throws: it streams the error via onData, marks the application status as 'error' via updateLibsqlById, then rethrows as INTERNAL_SERVER_ERROR with the raw error appended to the message. The root cause is in the appended error text (e.g. Docker/Dokploy driver failures).
Source
Thrown at packages/server/src/services/libsql.ts:162
`docker pull ${quote([libsql.dockerImage])}`,
onData,
);
} else {
await pullImage(libsql.dockerImage, onData);
}
await buildLibsql(libsql);
await updateLibsqlById(libsqlId, {
applicationStatus: "done",
});
onData?.("Deployment completed successfully!");
} catch (error) {
onData?.(`Error: ${error}`);
await updateLibsqlById(libsqlId, {
applicationStatus: "error",
});
throw new TRPCError({
code: "INTERNAL_SERVER_ERROR",
message: `Error on deploy libsql${error}`,
});
}
return libsql;
};
View on GitHub (pinned to 546686ea35)
Solutions
- Read the appended error text and the deployment logs streamed via onData to identify the failing step
- Check Docker daemon availability and disk space on the destination server
- Verify image registry connectivity / credentials for the libsql image
- Retry the deployment after fixing the root cause; the row status stays 'error' until then
Example fix
// before await deployLibsql(libsqlId); // throws 'Error on deploy libsqlError: ...' // after await deployLibsql(libsqlId, (chunk) => console.log(chunk)); // capture streamed logs to locate the failing step
Defensive patterns
Strategy: try-catch
Validate before calling
const l = await findLibsqlById(libsqlId);
if (l.applicationStatus === 'error') throw new Error('Fix prior failed deploy first'); Try / catch
try { await deployLibsql(libsqlId, onLog); } catch (e) { const m = String(e.message); await updateLibsqlById(libsqlId, { applicationStatus: 'error' }); alertDeployFailure(m, collectedLogs); } Prevention
- Stream onData logs into persistent storage for diagnosis
- Health-check destination Docker hosts before deploying
- Retry with backoff on transient network errors
When it happens
Trigger: Calling deployLibsql when the underlying remote deployment fails — Docker API unreachable on the destination server, image pull failure, bad server credentials, or a Dokploy deploy script exiting non-zero.
Common situations: Destination server offline or SSH/Docker connection misconfigured, network egress blocked so the libsql/Turso image can't be pulled, or resource exhaustion (disk/memory) on the worker.
Related errors
- INTERNAL_SERVER_ERROR
- INTERNAL_SERVER_ERROR
- CONFLICT
- INTERNAL_SERVER_ERROR
- INNGEST_BASE_URL is required to list deployment jobs
AI-assisted analysis of Dokploy/dokploy@546686ea35 (2026-08-27).
Data as JSON: /api/errors/6f866b3c09dcbc8d.
Report an issue: GitHub.