paperclipai/paperclip · error
Managed workspace readiness gate could not resolve a health
Error message
Managed workspace readiness gate could not resolve a health URL
What it means
The managed-workspace publish path could not derive a health URL for the service (record port/url and serviceName/command yielded no resolvable probe URL), so the readiness gate cannot even probe the workspace before publishing it.
Source
Thrown at server/src/services/workspace-runtime.ts:6015
// Carry the reason, not just the code: a bare `listener_ownership_mismatch`
// in the operation log is what made PAP-17254 undiagnosable (PAP-17256).
const code = provisioned.status.lastError ?? "unknown error";
throw new Error(
`HTTPS exposure failed: ${code}${provisioned.errorDetail ? ` — ${provisioned.errorDetail}` : ""}`,
);
}
}
// Transport readiness only proves a listener answered. A managed workspace
// must additionally satisfy the protected readiness contract — own database,
// cloned rows, login handoff, and matching instance/workspace identity —
// before it may be published as running/healthy (PAP-17572).
if (managedWorkspaceIdentity) {
const publishHealthUrl = resolveRuntimeServiceHealthUrl(
record.port ? `http://127.0.0.1:${record.port}` : rewriteUrlHostToLoopback(record.url ?? backendUrl),
{ serviceName, command },
);
if (!publishHealthUrl) {
throw new Error("Managed workspace readiness gate could not resolve a health URL");
}
let gate = await waitForManagedWorkspaceReadiness({
healthUrl: publishHealthUrl,
identity: managedWorkspaceIdentity,
});
if (gate.ok) {
if (!record.db) {
throw new Error("Managed workspace readiness gate could not resolve the control-plane database");
}
gate = await probeManagedWorkspaceHandoffSubjects({
db: record.db,
healthUrl: publishHealthUrl,
identity: managedWorkspaceIdentity,
});
}
if (!gate.ok) {
logManagedWorkspaceReadinessRejection({
executionWorkspaceId: managedWorkspaceIdentity.executionWorkspaceId,View on GitHub (pinned to a7e689b3c3)
Solutions
- Check the runtime service config exposes a url or port for the service
- Verify the service command names a health endpoint resolvable by resolveRuntimeServiceHealthUrl
- Inspect the workspace runtime config for a missing serviceName/command mapping
- Re-run provisioning after correcting the service definition
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at server/src/services/workspace-runtime.ts:6015 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@a7e689b3c3 (2026-08-21).
Data as JSON: /api/errors/80a2d729c6f24732.
Report an issue: GitHub.