paperclipai/paperclip · error · ToolGatewayHttpError

signing_secret_unconfigured

signing_secret_unconfigured

Error message

${error.message}

What it means

Error "PAPERCLIP_TOOL_ACTION_SIGNING_SECRET is not configured; signed tool action approvals cannot be issued. Set PAPERCLIP_TOOL_ACTION_SIGNING_SECRET in this instance's environment (worktrees inherit it from .paperclip/.env)." thrown in paperclipai/paperclip.

Solutions

  1. Set PAPERCLIP_TOOL_ACTION_SIGNING_SECRET in the server environment (worktrees inherit from .paperclip/.env) and restart the instance.
Defensive patterns

Strategy: fallback

When it happens

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

Appendix: source

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

        })
        .where(
          and(
            eq(toolActionRequests.id, actionRequest.id),
            eq(toolActionRequests.status, "pending"),
          ),
        );
      if (error instanceof ToolActionSigningSecretMissingError) {
        await db
          .update(toolInvocations)
          .set({
            status: "failed",
            errorCode: "signing_secret_unconfigured",
            errorMessage: error.message,
            completedAt: new Date(),
            updatedAt: new Date(),
          })
          .where(eq(toolInvocations.id, input.invocation.id));
        throw new ToolGatewayHttpError(
          500,
          error.message,
          "signing_secret_unconfigured",
          {
            invocationId: input.invocation.id,
            tool: input.tool.name,
          },
        );
      }
      throw error;
    }
    // Board-only technical detail for the formal-approval interaction (target=custom).
    const detailsMarkdown = [
      `Tool: \`${input.tool.name}\``,
      `Risk: \`${input.tool.risk}\``,
      "",
      "Arguments reviewed for execution:",
      "",

View on GitHub (pinned to 3f1d897a7c)