{"record":{"id":"f995087acfd49603","repo":"deepseek-ai/deepseek-harness","slug":"sandbox-permissions-is-not-available-in-this-compo","errorCode":null,"errorMessage":"sandbox_permissions is not available in this composition (no sandboxing filesystem to escalate)","messagePattern":"sandbox_permissions is not available in this composition \\(no sandboxing filesystem to escalate\\)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/fs/tool-fs/src/sandbox.ts","lineNumber":94,"sourceCode":"   * The policy to stamp onto this mutation: an approved escalation grant (a\n   * strictly wider retry resolved through `ctx.approval` before anything\n   * executes), else the session's standing mode. The calling session's cwd is\n   * always carried as the workspace root. Validates the escalation argument\n   * pairing first.\n   * @param toolName - the mutating tool's name, for the approval audit trail.\n   * @param args - the call's escalation arguments.\n   * @param exec - the tool-execution context (agent, callId, signal).\n   * @returns the policy to pass to the mutation, or undefined for an\n   *   unsandboxed backend.\n   */\n  async resolvePolicy(toolName: string, args: FsEscalationArgs, exec: ToolExecution): Promise<SandboxExecutionPolicy | undefined> {\n    validateEscalationArgs(args.sandbox_permissions, args.justification)\n    const standingPolicy = this.policy?.resolve({ ...exec.agent ? { session: exec.agent.session } : {} })\n    if (args.sandbox_permissions === undefined || args.justification === undefined) {\n      return standingPolicy\n    }\n    if (this.escalationModes.length === 0) {\n      throw new Error('sandbox_permissions is not available in this composition (no sandboxing filesystem to escalate)')\n    }\n    const policy = standingPolicy as SandboxExecutionPolicy\n    const approvedMode = await approveEscalation(\n      { requestedMode: args.sandbox_permissions, justification: args.justification, effectiveMode: policy.mode, subject: 'operation' },\n      {\n        approver: this.ctx.get('approval'),\n        agent: exec.agent,\n        callId: exec.callId,\n        toolName,\n        signal: exec.signal,\n      },\n    )\n    return { ...policy, mode: approvedMode }\n  }\n\n  /**\n   * Map a thrown provider error for the model: a `FS_SANDBOX_DENIED` becomes a\n   * `FsError` whose text is the shared `[sandbox: …]` denial marker plus the","sourceCodeStart":76,"sourceCodeEnd":112,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/fs/tool-fs/src/sandbox.ts#L76-L112","documentation":"Error \"sandbox_permissions is not available in this composition (no sandboxing filesystem to escalate)\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/fs/tool-fs/src/sandbox.ts:94 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"}