{"record":{"id":"9240f5c6eb0bf5d7","repo":"deepseek-ai/deepseek-harness","slug":"dsh-e2b-runtime-root-must-be-a-real-directory","errorCode":null,"errorMessage":"dsh-e2b: runtime root must be a real directory: ${this.runtimeRoot}","messagePattern":"dsh-e2b: runtime root must be a real directory: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/e2b/e2b/src/index.ts","lineNumber":163,"sourceCode":"    }\n    if (!Number.isFinite(this.config.timeoutMs) || this.config.timeoutMs <= 0) {\n      throw new Error('dsh-e2b: timeoutMs must be a positive finite number')\n    }\n  }\n\n  private async open(): Promise<Sandbox> {\n    const sandbox = await Sandbox.create({\n      apiKey: this.config.apiKey,\n      timeoutMs: this.config.timeoutMs,\n      secure: true,\n      lifecycle: { onTimeout: 'kill' },\n    })\n    try {\n      await sandbox.files.makeDir(this.cwd)\n      await sandbox.files.makeDir(this.runtimeRoot)\n      const runtimeRoot = await sandbox.files.getInfo(this.runtimeRoot)\n      if (runtimeRoot.type !== FileType.DIR || runtimeRoot.symlinkTarget !== undefined) {\n        throw new Error(`dsh-e2b: runtime root must be a real directory: ${this.runtimeRoot}`)\n      }\n      await sandbox.commands.run(\n        `chmod 700 -- ${quoteE2BShellArg(this.runtimeRoot)}`,\n        { envs: e2bControlEnvs() },\n      )\n      return sandbox\n    } catch (error: unknown) {\n      try {\n        await sandbox.kill()\n      } catch (_sandboxSetupRollbackFailure) {\n        // TODO(e2b-setup-rollback): Add retry state only if a real double failure\n        // outlives E2B's configured sandbox timeout.\n      }\n      throw error\n    }\n  }\n}\n","sourceCodeStart":145,"sourceCodeEnd":181,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/e2b/e2b/src/index.ts#L145-L181","documentation":"Error \"dsh-e2b: runtime root must be a real directory: ${this.runtimeRoot}\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/e2b/e2b/src/index.ts:163 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"}