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

  1. Read the appended error text and the deployment logs streamed via onData to identify the failing step
  2. Check Docker daemon availability and disk space on the destination server
  3. Verify image registry connectivity / credentials for the libsql image
  4. 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

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


AI-assisted analysis of Dokploy/dokploy@546686ea35 (2026-08-27). Data as JSON: /api/errors/6f866b3c09dcbc8d. Report an issue: GitHub.