{"record":{"id":"030171f467d3c480","repo":"deepseek-ai/deepseek-harness","slug":"agent-preset-read-only","errorCode":"agent-preset-read-only","errorMessage":"agent-presets: preset \"${presetId}\" cannot be written: it ships with the deployment","messagePattern":"agent-presets: preset \"(.+?)\" cannot be written: it ships with the deployment","errorType":"exception","errorClass":"PresetNotWritableError","httpStatus":null,"severity":"error","filePath":"packages/host/apiproxy/src/api-proxy.ts","lineNumber":3080,"sourceCode":"        try {\n          await presets.copy(from, agentPreset, name)\n          return ok(request, { agentPreset })\n        } catch (error: unknown) {\n          return err(request, presetError(agentPreset, error))\n        }\n      },\n\n      async openDocument(request, signal) {\n        const { agentPreset } = request.payload\n        const presets = ctx.get('agentPresets')\n        if (presets === undefined) return err(request, noRoster(agentPreset))\n        try {\n          const preset = await presets.resolve(agentPreset)\n          // Same line as copy/remove draw: the shipped install is not the\n          // user's to manage, and pointing an editor into it invites edits an\n          // upgrade will silently overwrite.\n          if (preset.trust !== 'user') {\n            throw new PresetNotWritableError(preset.id, 'it ships with the deployment')\n          }\n          // The id resolved against the Host's own roots is what selects the\n          // directory — no browser payload carries a path in either direction\n          // unless the deployment has no opener to hand it to.\n          const directory = dirname(preset.path)\n          if (!canOpenPaths()) return ok(request, { opened: false as const, path: directory })\n          return await openPath(request, directory, signal)\n        } catch (error: unknown) {\n          return err(request, presetError(agentPreset, error))\n        }\n      },\n\n      async remove(request) {\n        const { agentPreset } = request.payload\n        const presets = ctx.get('agentPresets')\n        if (presets === undefined) return err(request, noRoster(agentPreset))\n        try {\n          await presets.remove(agentPreset)","sourceCodeStart":3062,"sourceCodeEnd":3098,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/host/apiproxy/src/api-proxy.ts#L3062-L3098","documentation":"Error \"agent-presets: preset \"${presetId}\" cannot be written: it ships with the deployment\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/host/apiproxy/src/api-proxy.ts:3080 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b150a551b8d465e31e418e1b2eaf5e79bbb7d28e","analyzedAt":"2026-08-24T18:12:29.105Z","schemaVersion":2},"datasetVersion":"2026-08-24T22:17:12.610Z"}