paperclipai/paperclip · error · ToolGatewayHttpError
signed_arguments_mismatch
signed_arguments_mismatch
Error message
Approved tool action arguments do not match reviewed hash
What it means
Post-approval arguments integrity check: the canonical hash of the stored parameters does not match actionRequest.canonicalArgumentsHash, or the signature over the canonical arguments fails verification. The 409 blocks execution because the arguments drifted from what was actually reviewed and signed.
Solutions
- Arguments differ from the reviewed hash. Execute with exactly the approved arguments or request a new approval.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/services/tool-gateway.ts:5706 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@3f1d897a7c (2026-09-18).
Data as JSON: /api/errors/cb02a49e200b5303.
Report an issue: GitHub.
Appendix: source
Thrown at server/src/services/tool-gateway.ts:10066
sensitiveMode: "redact",
promptInjectionMode: "ignore",
});
const storedCanonical = canonicalToolArguments(storedParameters);
if (
actionRequest.canonicalArgumentsHash !==
summarizeToolValue(storedParameters).sha256 ||
!verifyToolArgumentsSignature({
signedArguments: actionRequest.signedArguments,
invocationId: storedInvocation.id,
toolName: storedInvocation.toolName,
canonicalArguments: storedCanonical,
approvalSnapshot: signedPayload.approvalSnapshot,
executionOnApprove: signedPayload.executionOnApprove,
identityContextId: signedPayload.identityContextId,
signingSecret: options.toolActionSigningSecret,
})
) {
throw new ToolGatewayHttpError(
409,
"Approved tool action arguments do not match reviewed hash",
"signed_arguments_mismatch",
);
}
if (
!(await approvedManagedArgumentsRemainCurrent(
session,
tool,
storedParameters,
))
) {
throw await expireApprovedActionForManagedArgumentDrift({
actionRequestId: actionRequest.id,
invocationId: storedInvocation.id,
toolName: storedInvocation.toolName,
});
}View on GitHub (pinned to 3f1d897a7c)