paperclipai/paperclip · error
HTTPS exposure reservation failed: ${result.status.lastError
Error message
HTTPS exposure reservation failed: ${result.status.lastError ?? "unknown broker error"} What it means
After passing conflict mediation, the broker call to reserve the HTTPS exposure failed (result carried no handle), and the reservation error is surfaced from the broker's lastError. The exposure subsystem could not secure its reservation.
Source
Thrown at server/src/services/workspace-runtime.ts:4227
claimant: input.claimant,
ledger,
listenerOwners: await readExposureListenerOwners([pair.appPort, pair.hmrPort]),
serveMappingOwners,
});
if (conflict) throw new ExposurePortOwnershipConflictError(conflict);
const result = await reserveExposure(workspaceRuntimeExposureDeps, {
runtimeId: input.runtimeId,
config: input.config,
appPort: pair.appPort,
});
if (result.handle) {
// Keep this pair's claim; the caller releases it on stop/teardown.
claimed.pop();
return { appPort: pair.appPort, hmrPort: pair.hmrPort, status: result.status, handle: result.handle };
}
if (!result.status.lastError || !retryable.has(result.status.lastError)) {
throw new Error(`HTTPS exposure reservation failed: ${result.status.lastError ?? "unknown broker error"}`);
}
reserved.add(pair.appPort);
reserved.add(pair.hmrPort);
// The preference lost its race with a conflicting/manual/quarantined
// mapping; drop it so the retry scans instead of re-offering the same port.
preferredAppPort = null;
}
} finally {
// Every pair this call took but did not hand back — rejected candidates and
// the in-flight pair on a thrown failure — goes back immediately. Leaving
// them held would burn the range down over a retry storm.
for (const pair of claimed) exposurePortPairClaims.release(pair);
}
}
async function canBindRuntimePort(port: number): Promise<boolean> {
return await new Promise<boolean>((resolve, reject) => {
const server = net.createServer();View on GitHub (pinned to a7e689b3c3)
Solutions
- Inspect the HTTPS exposure broker's status.lastError for the concrete failure reason and retry the reservation after addressing it.
- Verify the broker service is reachable and its credentials/configuration are valid, then retry the exposure reservation.
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at server/src/services/workspace-runtime.ts:4170 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/571d0806bd0974a8.
Report an issue: GitHub.