paperclipai/paperclip · error · ToolGatewayHttpError

message

Error message

message

What it means

Not a literal throw message: this is the audit details block for tool_gateway.call_failed / call_deferred. The referenced field is the normalized error 'message' variable — the upstream/tool error text captured after a failed or deferred tool call, recorded with invocationId, reasonCode, durationMs, and execution audit metadata for diagnosis.

Solutions

  1. The tool call failed with the wrapped error message; address the reported cause (often a validation or provider error) and retry.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at server/src/services/tool-gateway.ts:6017 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/a9593674469a65cb. Report an issue: GitHub.

Appendix: source

Thrown at server/src/services/tool-gateway.ts:10783

          session: sessionLike,
          companyId: input.runContext.companyId,
          agentId: input.runContext.agentId,
          runId: input.runContext.runId,
          issueId: context.issueId,
          action: "tool_gateway.call_failed",
          details: {
            invocationId,
            decision: "deny",
            reasonCode,
            tool: input.tool,
            ...toolAuditMetadata(tool),
            argumentsSummary: argumentValidation.summary,
            durationMs: Date.now() - startedAt,
            error: message,
          },
        });
        if (err instanceof ToolContentValidationError) {
          throw new ToolGatewayHttpError(422, message, reasonCode, {
            findings: err.findings,
          });
        }
        throw err;
      }
    },

    async revokeSession(input: {
      companyId: string;
      sessionId: string;
      revokedAt?: Date;
      actor?: {
        actorType?: LogActivityInput["actorType"];
        actorId?: string;
        agentId?: string | null;
        runId?: string | null;
      };
      agentScope?: { agentId: string; runId?: string | null } | null;

View on GitHub (pinned to 3f1d897a7c)