paperclipai/paperclip · error · ToolGatewayHttpError

approved_execution_unsupported

approved_execution_unsupported

Error message

Plugin actions cannot execute outside their originating run

What it means

Plugin tool safety guard during approved execution: the invocation's originating run context does not match the run now executing, and plugin actions are pinned to their originating run for isolation and audit integrity. Execution is refused rather than run under a different run's credentials/workspace.

Solutions

  1. Plugin tool actions must run within their originating run context; do not carry the action into a different run.
Defensive patterns

Strategy: validation

When it happens

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

Appendix: source

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

                invocation.id,
              )
            ).result
          : tool.providerType === "mcp_local_stdio"
            ? (
                await executeLocalStdioTool(
                  session,
                  tool,
                  parameters,
                  executionTimeoutMs,
                )
              ).result
            : tool.providerType !== "paperclip_plugin"
              ? await runWithTimeout(
                  executeBuiltinTool(session, tool, parameters),
                  executionTimeoutMs,
                )
              : (() => {
                  throw new ToolGatewayHttpError(
                    409,
                    "Plugin actions cannot execute outside their originating run",
                    "approved_execution_unsupported",
                  );
                })();
      const resultRecord = asRecord(result);
      if (resultRecord?.error)
        throw new ToolGatewayHttpError(
          502,
          String(resultRecord.content || resultRecord.error),
          "tool_execution_failed",
        );
      const resultValidation = validateToolContent({
        value: result,
        direction: "result",
        sensitiveMode: "redact",
        promptInjectionMode: "block",
      });

View on GitHub (pinned to 3f1d897a7c)