paperclipai/paperclip · error · ToolGatewayHttpError

invalid_parameters

invalid_parameters

Error message

run_tool requires a target tool name

What it means

Virtual run_tool dispatch guard: the agent invoked the run_tool meta-tool without the nested target tool name parameter (or with an empty value). The target name is mandatory because run_tool only forwards to another catalogued tool; supply the target tool's name and retry.

Solutions

  1. Pass the target tool name argument to run_tool; the call is missing its required tool identifier.
Defensive patterns

Strategy: validation

When it happens

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

Appendix: source

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

        throw new ToolGatewayHttpError(
          409,
          "GitHub credentials are unavailable",
          "github_identity_unavailable",
        );
      }
    }
    return tool;
  }

  function virtualRunToolInput(parameters: unknown): {
    targetToolName: string;
    targetParameters: unknown;
  } {
    const params = asRecord(parameters) ?? {};
    const targetToolName =
      typeof params.tool === "string" ? params.tool.trim() : "";
    if (!targetToolName) {
      throw new ToolGatewayHttpError(
        400,
        "run_tool requires a target tool name",
        "invalid_parameters",
      );
    }
    return {
      targetToolName,
      targetParameters: params.arguments ?? {},
    };
  }

  async function searchableOnDemandTools(
    session: ToolGatewaySession,
  ): Promise<ToolGatewayDescriptor[]> {
    const tools = (await connectedMcpToolsForCompany(session.companyId)).filter(
      isOnDemandRemoteTool,
    );
    const decisions = await Promise.all(

View on GitHub (pinned to 3f1d897a7c)