{"record":{"id":"f5dbec0cd706520d","repo":"paperclipai/paperclip","slug":"runtime-control-unsupported","errorCode":"runtime_control_unsupported","errorMessage":"Runtime slot control is only supported for local stdio slots","messagePattern":"Runtime slot control is only supported for local stdio slots","errorType":"http","errorClass":"ToolRuntimeSupervisorError","httpStatus":422,"severity":"error","filePath":"server/src/services/tool-runtime-supervisor.ts","lineNumber":784,"sourceCode":"    },\n\n    async stopSlot(input: {\n      companyId: string;\n      slotId: string;\n      runId?: string | null;\n      agentId?: string | null;\n      reason?: string;\n    }): Promise<ToolRuntimeSlotView> {\n      const [row] = await db\n        .select()\n        .from(toolRuntimeSlots)\n        .where(and(eq(toolRuntimeSlots.companyId, input.companyId), eq(toolRuntimeSlots.id, input.slotId)))\n        .limit(1);\n      if (!row) {\n        throw new ToolRuntimeSupervisorError(404, \"Runtime slot not found\", \"runtime_slot_not_found\", { slotId: input.slotId });\n      }\n      if (row.runtimeKind !== \"local_stdio\") {\n        throw new ToolRuntimeSupervisorError(\n          422,\n          \"Runtime slot control is only supported for local stdio slots\",\n          \"runtime_control_unsupported\",\n          { slotId: row.id, runtimeKind: row.runtimeKind },\n        );\n      }\n      const at = now();\n      const [stopped] = await db\n        .update(toolRuntimeSlots)\n        .set({\n          status: \"stopped\",\n          stoppedAt: at,\n          idleDeadlineAt: null,\n          idleExpiresAt: null,\n          healthStatus: \"ok\",\n          healthMessage: \"Runtime slot stopped.\",\n          metadata: {\n            ...asRecord(row.metadata),","sourceCodeStart":766,"sourceCodeEnd":802,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/server/src/services/tool-runtime-supervisor.ts#L766-L802","documentation":"stopSlot capability guard: the slot exists but its runtimeKind is not local_stdio, and slot control (stop/restart) is only implemented for local stdio runtimes. The operation is refused rather than no-op'd so callers know the slot cannot be managed through this path.","triggerScenarios":"Thrown at server/src/services/tool-runtime-supervisor.ts:784 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Slot control operations apply only to local stdio slots; remote slots are managed by the remote server."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}