{"record":{"id":"e34a8296cfd529d2","repo":"paperclipai/paperclip","slug":"run-inactive","errorCode":"run_inactive","errorMessage":"Run is not active","messagePattern":"Run is not active","errorType":"http","errorClass":"ToolGatewayHttpError","httpStatus":403,"severity":"error","filePath":"server/src/services/tool-gateway.ts","lineNumber":1087,"sourceCode":"        upstreamToolName: catalogEntry.toolName,\n        catalogName: catalogEntry.name,\n        inputSchema,\n        outputSchema,\n        annotations,\n        risk: {\n          level: catalogEntry.riskLevel,\n          isReadOnly: catalogEntry.isReadOnly,\n          isWrite: catalogEntry.isWrite,\n          isDestructive: catalogEntry.isDestructive,\n        },\n        onDemandTools,\n      };\n      return {\n        name: gatewayToolName,\n        displayName: catalogEntry.title ?? catalogEntry.toolName,\n        description: catalogEntry.description ?? `Connected MCP tool ${catalogEntry.toolName} from ${connection.name}.`,\n        parametersSchema: inputSchema,\n        pluginId: `mcp:${applicationKey ?? application.id}`,\n        providerType: connection.transport === \"local_stdio\" ? \"mcp_local_stdio\" : \"mcp_remote_http\",\n        risk,\n        applicationId: application.id,\n        applicationKey,\n        applicationDisplayName: application.name,\n        connectionId: connection.id,\n        catalogEntryId: catalogEntry.id,\n        upstreamToolName: catalogEntry.toolName,\n        providerMetadata,\n      };\n    });\n  }\n\n  async function connectedMcpToolsForConnection(companyId: string, connectionId: string): Promise<ToolGatewayDescriptor[]> {\n    return (await connectedMcpToolsForCompany(companyId))\n      .filter((tool) => tool.connectionId === connectionId);\n  }\n","sourceCodeStart":1069,"sourceCodeEnd":1105,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/services/tool-gateway.ts#L1069-L1105","documentation":"Lifecycle guard after the ownership checks: the run's status is not active, so tool calls against it are refused (only in-flight runs may use the tool gateway). The finished/cancelled run is at fault.","triggerScenarios":"Thrown at server/src/services/tool-gateway.ts:1069 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["The run has ended. Start a new run/heartbeat before invoking tools; check run status first."],"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"}