{"record":{"id":"f8252a3b680496c0","repo":"paperclipai/paperclip","slug":"local-stdio-command-unavailable","errorCode":"local_stdio_command_unavailable","errorMessage":"Local stdio template does not define an executable command","messagePattern":"Local stdio template does not define an executable command","errorType":"http","errorClass":"ToolGatewayHttpError","httpStatus":501,"severity":"error","filePath":"server/src/services/tool-gateway.ts","lineNumber":2640,"sourceCode":"    }\n    const resolved = await secrets.resolveUserSecretValue(connection.companyId, {\n      definitionId: secret.userSecretDefinitionId,\n      responsibleUserId: grant.subjectUserId,\n      version: ref.versionSelector ?? \"latest\",\n      required: ref.required ?? true,\n    }, accessContext);\n    if (!resolved) {\n      throw new ToolGatewayHttpError(422, \"Personal credential is not configured\", \"user_secret_missing\", {\n        connectionId: connection.id,\n        grantId: grant.id,\n        credential: configPath,\n      });\n    }\n    return resolved.value;\n  }\n\n  async function maybeRefreshPaperclipCloudGoogleGrant(\n    session: ToolGatewaySession,\n    connection: typeof toolConnections.$inferSelect,\n    grant: typeof connectionGrants.$inferSelect,\n  ): Promise<typeof connectionGrants.$inferSelect> {\n    const oauth = asRecord(asRecord(connection.config)?.oauth);\n    if (!oauth || !isPaperclipCloudConnectorStrategy(oauth.strategy)) return grant;\n    const configuredProfile = oauth.connectorProfile;\n    const connectorProfile: GoogleWorkspaceConnectorProfileId = configuredProfile === undefined\n      ? \"gmail.draft\"\n      : typeof configuredProfile === \"string\" && isGoogleWorkspaceConnectorProfileId(configuredProfile)\n        ? configuredProfile\n        : (() => {\n            throw new ToolGatewayHttpError(422, \"Google authorization has an invalid connector profile\", \"google_connector_profile_invalid\", {\n              connectionId: connection.id,\n              grantId: grant.id,\n            });\n          })();\n    const connectorSubject = typeof oauth.connectorSubjectUserId === \"string\"\n      ? oauth.connectorSubjectUserId","sourceCodeStart":2622,"sourceCodeEnd":2658,"githubUrl":"https://github.com/paperclipai/paperclip/blob/5716fe907e596ce73501408fc6efdb19fb61edf2/server/src/services/tool-gateway.ts#L2622-L2658","documentation":"Pre-launch sanity check in callLocalStdioMcp: the resolved runtime template has no command executable defined, so there is nothing to spawn. Returned as 501 (not implemented) because the template configuration itself is incomplete — fix the template definition rather than retrying the call.","triggerScenarios":"Thrown at server/src/services/tool-gateway.ts:2640 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Define an executable command in the local stdio template configuration."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5716fe907e596ce73501408fc6efdb19fb61edf2","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}