{"record":{"id":"576ec99b794a86ab","repo":"paperclipai/paperclip","slug":"local-stdio-connection-disabled","errorCode":"local_stdio_connection_disabled","errorMessage":"Connection is disabled.","messagePattern":"Connection is disabled\\.","errorType":"http","errorClass":"ToolGatewayHttpError","httpStatus":403,"severity":"error","filePath":"server/src/services/tool-gateway.ts","lineNumber":2661,"sourceCode":"    message: string | null,\n  ) {\n    const now = new Date();\n    await db\n      .update(toolConnections)\n      .set({\n        healthStatus: status,\n        healthMessage: message,\n        healthCheckedAt: now,\n        lastHealthAt: now,\n        lastError: status === \"ok\" ? null : message,\n        updatedAt: now,\n      })\n      .where(eq(toolConnections.id, connection.id));\n  }\n\n  function grantRefForCredential(\n    grant: typeof connectionGrants.$inferSelect,\n    ref: McpConnectionCredentialRef,\n  ): ToolCredentialSecretRef | undefined {\n    return grant.credentialSecretRefs.find((candidate) =>\n      candidate.configPath === ref.name || candidate.configPath === `credentials.${ref.name}`,\n    );\n  }\n\n  async function resolveGrantSecretValue(\n    session: ToolGatewaySession,\n    connection: typeof toolConnections.$inferSelect,\n    grant: typeof connectionGrants.$inferSelect,\n    ref: ToolCredentialSecretRef,\n    configPath = ref.configPath,\n  ): Promise<string> {\n    const accessContext = {\n      consumerType: \"tool_connection\" as const,\n      consumerId: connection.id,\n      configPath,\n      actorType: \"system\" as const,","sourceCodeStart":2643,"sourceCodeEnd":2679,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/services/tool-gateway.ts#L2643-L2679","documentation":"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.","triggerScenarios":"Thrown at server/src/services/tool-gateway.ts:2565 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Enable the connection in connection settings before invoking its tools."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}