paperclipai/paperclip · error · ToolGatewayHttpError
local_stdio_connection_disabled
local_stdio_connection_disabled
Error message
Connection is disabled.
What it means
Local stdio MCP connection guard: the catalog entry resolved to a connection whose transport is not local_stdio (or that is disabled/inactive), so local stdio dispatch is refused. Indicates the tool's connection type changed or the connection was disabled, and the agent should not keep retrying the call.
Solutions
- Enable the connection in connection settings before invoking its tools.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/services/tool-gateway.ts:2565 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/576ec99b794a86ab.
Report an issue: GitHub.
Appendix: source
Thrown at server/src/services/tool-gateway.ts:4759
const [connection] = await db
.select()
.from(toolConnections)
.where(
and(
eq(toolConnections.id, entry.connectionId),
eq(toolConnections.companyId, session.companyId),
),
)
.limit(1);
if (!connection || connection.transport !== "local_stdio") {
throw new ToolGatewayHttpError(
404,
`Tool "${tool.name}" not found`,
"tool_not_found",
);
}
if (!connection.enabled || connection.status !== "active") {
throw new ToolGatewayHttpError(
403,
"Connection is disabled.",
"local_stdio_connection_disabled",
{
connectionId: connection.id,
},
);
}
return { entry, connection };
}
function localStdioTemplateId(
connection: typeof toolConnections.$inferSelect,
): string {
const config = asRecord(connection.config) ?? {};
const templateId = config.templateId;
if (typeof templateId !== "string" || templateId.trim().length === 0) {
throw new ToolGatewayHttpError(View on GitHub (pinned to 3f1d897a7c)