{"record":{"id":"927fb477b0ab57d1","repo":"deepseek-ai/deepseek-harness","slug":"subprocess-e2b-executable-name-must-be-non-empty","errorCode":null,"errorMessage":"subprocess-e2b: executable name must be non-empty","messagePattern":"subprocess-e2b: executable name must be non-empty","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/e2b/subprocess-e2b/src/index.ts","lineNumber":108,"sourceCode":"      for (const terminal of terminals) {\n        pending.push(terminal.terminate().then(() => { this.terminals.delete(terminal) }))\n      }\n      const outcomes = await Promise.allSettled(pending)\n      const failures = outcomes.flatMap<unknown>(outcome => outcome.status === 'rejected'\n        ? [outcome.reason as unknown]\n        : [])\n      if (failures.length === 1) throw asError(failures[0])\n      if (failures.length > 1) throw new AggregateError(failures, 'subprocess-e2b: teardown failed')\n    }, 'e2b subprocess teardown')\n  }\n\n  /** @inheritdoc */\n  async resolveExecutable(\n    command: string,\n    env?: Readonly<Record<string, string>>,\n    signal?: AbortSignal,\n  ): Promise<string> {\n    if (command.length === 0) throw new Error('subprocess-e2b: executable name must be non-empty')\n    signal?.throwIfAborted()\n    const sandbox = await this.ctx.e2b.getSandbox()\n    if (posix.isAbsolute(command)) {\n      await sandbox.commands.run(\n        `test -f ${quoteE2BShellArg(command)} -a -x ${quoteE2BShellArg(command)}`,\n        { envs: e2bControlEnvs(), ...signalOpts(signal) },\n      )\n      signal?.throwIfAborted()\n      return command\n    }\n    if (command.includes('/')) {\n      throw new Error(\n        `subprocess-e2b: command ${JSON.stringify(command)} is a relative path; use an absolute path or a bare PATH name`,\n      )\n    }\n    const path = env?.PATH\n    const prefix = path === undefined ? '' : `PATH=${quoteE2BShellArg(path)} `\n    const result = await sandbox.commands.run(","sourceCodeStart":90,"sourceCodeEnd":126,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/e2b/subprocess-e2b/src/index.ts#L90-L126","documentation":"Error \"subprocess-e2b: executable name must be non-empty\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/e2b/subprocess-e2b/src/index.ts:108 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"}