paperclipai/paperclip · error
Runtime service "${serviceName}" could not start because por
Error message
Runtime service "${serviceName}" could not start because port ${conflictPort} has a cross-workspace port conflict with ${ownerDescription}; requested workspace: ${serviceCwd}. Stop the other service or configure a different port. What it means
Error "Runtime service "${serviceName}" could not start because port ${conflictPort} has a cross-workspace port conflict with ${ownerDescription}; requested workspace: ${serviceCwd}. Stop the other service or configure a different port." thrown in paperclipai/paperclip.
Source
Thrown at server/src/services/workspace-runtime.ts:5795
// range instead, and both ports in that pair were already probed free before
// the lease was taken — so checking the pinned port here would reject a
// legacy `port: 45439` service purely because the pre-backfill instance still
// holds 45439, which is exactly the workspace this feature has to upgrade.
const conflictPort = reservedExposure ? null : port;
if (conflictPort) {
const ownerPid = await readLocalServicePortOwner(conflictPort);
if (ownerPid) {
if (canAllocateFixedPort || portType === "auto") {
throw new RuntimeServicePortBindCollision(conflictPort);
}
const ownerCwd = await readLocalServiceProcessCwd(ownerPid);
const ownerIsInWorkspace = ownerCwd
? await isLocalServiceProcessInWorkspace(ownerCwd, serviceCwd)
: null;
const ownerDescription = ownerCwd ? `pid ${ownerPid} (cwd: ${ownerCwd})` : `pid ${ownerPid} (cwd unavailable)`;
releasePortReservation(reservedPort);
if (ownerIsInWorkspace === false) {
throw new Error(
`Runtime service "${serviceName}" could not start because port ${conflictPort} has a cross-workspace port conflict with ${ownerDescription}; requested workspace: ${serviceCwd}. Stop the other service or configure a different port.`,
);
}
throw new Error(
`Runtime service "${serviceName}" could not start because port ${conflictPort} is already in use by ${ownerDescription}`,
);
}
// A configured port that is free right now can still be taken by a sibling workspace that
// is mid-start. Claiming it in-process makes the loser fail terminally here instead of
// silently racing to bind and then hanging on a readiness probe it can never satisfy.
// `conflictPort !== reservedPort` guards the port this start allocated for itself: we
// must not fail a start by colliding with our own reservation.
if (!claimRuntimeServiceBindPort(conflictPort, reservedPort)) {
releasePortReservation(reservedPort);
throw new Error(
`Runtime service "${serviceName}" could not start because configured port ${conflictPort} is already being claimed by another managed start in this instance. Retry once that start settles, or configure a different port.`,
);
}View on GitHub (pinned to a7e689b3c3)
Solutions
- Stop the other workspace service that owns the conflicting port, then start this service.
- Configure a different port for "${serviceName}" to avoid the cross-workspace conflict.
When it happens
Trigger: Thrown at server/src/services/workspace-runtime.ts:5483 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@a7e689b3c3 (2026-08-18).
Data as JSON: /api/errors/05751ba2326f48f1.
Report an issue: GitHub.