paperclipai/paperclip · error
HTTPS exposure failed: ${code} — ${provisioned.errorDetail}
Error message
HTTPS exposure failed: ${code} — ${provisioned.errorDetail} What it means
The post-start provisionExposure call failed and returned an error code with detail (e.g. TLS/provisioning backend failure). The runtime service record exists but its HTTPS exposure could not be provisioned, so the start fails with the exposure error code and detail.
Source
Thrown at server/src/services/workspace-runtime.ts:6000
releasePortReservation(reservedPort);
releasePortReservation(claimedIdentityPort);
if (record.exposureConfig && record.exposureHandle && record.port) {
const provisioned = await provisionExposure(workspaceRuntimeExposureDeps, {
runtimeId: record.id,
config: record.exposureConfig,
handle: record.exposureHandle,
hostname: exposureHostname!,
appPort: record.port,
});
record.exposure = provisioned.status;
record.exposureHandle = provisioned.handle;
record.url = provisioned.status.publicUrl;
await persistRuntimeServiceRecord(record.db, record);
if (provisioned.status.state !== "ready" || !record.url) {
// 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,View on GitHub (pinned to a7e689b3c3)
Solutions
- Read the provisioning error code and errorDetail, fix the exposure configuration accordingly, and retry.
- Check exposure provider credentials and network reachability, then retry the HTTPS exposure.
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at server/src/services/workspace-runtime.ts:5680 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/a339f6401af58829.
Report an issue: GitHub.