paperclipai/paperclip · error
createdByRunId must match the authenticated agent run
Error message
createdByRunId must match the authenticated agent run
What it means
403 from resolveWorkProductCreatedByRunId: an agent actor supplied a createdByRunId that differs from the run id on its authenticated request, so the attribution claim is spoofed.
Source
Thrown at server/src/routes/issues.ts:5153
const context = readObject(run.contextSnapshot);
const paperclipWake = readObject(context.paperclipWake);
const recovery = readObject(paperclipWake.recovery);
const wakeReason = typeof context.wakeReason === "string"
? context.wakeReason
: typeof paperclipWake.reason === "string"
? paperclipWake.reason
: null;
if (wakeReason !== "source_scoped_recovery_action") return null;
const recoveryCause = typeof context.recoveryCause === "string"
? context.recoveryCause
: typeof recovery.cause === "string"
? recovery.cause
: null;
if (
recoveryCause === "successful_run_missing_state" ||
recoveryCause === "successful_run_missing_issue_disposition"
) {
return null;
}
const firstLine = body.split(/\r?\n/, 1)[0]?.trim() || "Recovery update";
const title = firstLine.length > 160 ? `${firstLine.slice(0, 159)}…` : firstLine;
return {
kind: "system_notice",
tone: "info",
title,
detailsDefaultOpen: false,
density: "compact",
};
}
async function assertDeliverableMutationAllowedByRunContext(
req: Request,
res: Response,
issue: { id: string; companyId: string },View on GitHub (pinned to 01ad858492)
Solutions
- Correct the request so it satisfies the condition stated in the error message, then retry; see the throwing line in the named file for the exact check.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/routes/issues.ts:4998 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Authentication and authorization failures — expired tokens, bad credentials, and missing scopes.
AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-08-18).
Data as JSON: /api/errors/e4bda943be32954b.
Report an issue: GitHub.