paperclipai/paperclip · error
native_runner_warm_transition_registered_endpoint_mismatch
Error message
native_runner_warm_transition_registered_endpoint_mismatch
What it means
Consistency guard in the warm-transition recovery path of the runnerd Codex transport: when warm recovery registers both old and new identities with the control plane, the connection endpoint (mode/connectUrl) reported for the old identity does not match the one recorded for the new identity. The warm handover is aborted because the two registrations disagree on which endpoint the runner should connect through.
Source
Thrown at packages/paperclip-runner/src/live/runnerd-codex-transport.ts:4998
>
>;
let oldTransitionRegistration: RecoveryRegistration | null = null;
let newTransitionRegistration: RecoveryRegistration | null = null;
if (warmRecovery && this.options.controlPlaneRegistration) {
try {
oldTransitionRegistration = await this.options.controlPlaneRegistration(
core,
warmRecovery.proof.receipt.oldIdentity,
);
const oldConnection = oldTransitionRegistration.connection ?? {
mode: "connect",
connectUrl: oldTransitionRegistration.connectUrl,
};
if (
oldConnection.mode !== "connect" ||
typeof oldConnection.connectUrl !== "string"
) {
throw new Error(
"native_runner_warm_transition_registered_endpoint_mismatch",
);
}
newTransitionRegistration = await this.options.controlPlaneRegistration(
core,
warmRecovery.proof.receipt.newIdentity,
);
const newConnection = newTransitionRegistration.connection ?? {
mode: "connect",
connectUrl: newTransitionRegistration.connectUrl,
};
if (
newConnection.mode !== "connect" ||
durableRecoveryInternals.canonicalJson(newConnection) !==
durableRecoveryInternals.canonicalJson(
warmRecovery.proof.receipt.connection,
)
) {View on GitHub (pinned to 01ad858492)
Solutions
- Verify control-plane registration config returns a consistent connection for old and new runner identities
- Check for concurrent config changes to the connect URL during the warm transition
- Retry the transition after stabilizing the control-plane registration endpoint configuration
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at packages/paperclip-runner/src/live/runnerd-codex-transport.ts:4998 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-09-10).
Data as JSON: /api/errors/5e01d7628c73ba54.
Report an issue: GitHub.