{"record":{"id":"feb5b8decebd36ec","repo":"deepseek-ai/deepseek-harness","slug":"invalid-argv-expected-a-non-empty-program-name-at-feb5b8","errorCode":null,"errorMessage":"invalid argv: expected a non-empty program name at argv[0]","messagePattern":"invalid argv: expected a non-empty program name at argv\\[0\\]","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/subprocess/subprocess-local/src/spawn.ts","lineNumber":340,"sourceCode":" * @param internals - test-only spill-directory, platform, and taskkill overrides.\n * @returns live subprocess handle.\n * @throws when `graceMs` cannot be represented by one Node timer.\n */\nexport function spawnSubprocess(spec: SubprocessSpawnSpec, internals: SpawnInternals = {}): LocalSubprocessHandle {\n  if (!Number.isFinite(spec.graceMs) || spec.graceMs <= 0 || spec.graceMs > MAX_TIMER_DELAY_MS) {\n    throw new Error(`subprocess graceMs must be a positive finite number no greater than ${MAX_TIMER_DELAY_MS}`)\n  }\n  const spillDir = internals.spillDir ?? privateSpillDir()\n  const platform = internals.platform ?? process.platform\n  const taskkill = internals.taskkill ?? taskkillProcessTree\n  const linuxGroupHasLiveMembers = internals.linuxProcessGroupHasLiveMembers ?? linuxProcessGroupHasLiveMembers\n\n  if (spec.signal?.aborted) {\n    throw new Error(`aborted before spawn: ${String(spec.signal.reason ?? 'aborted')}`)\n  }\n  const [program, ...args] = spec.argv\n  if (program === undefined || program.length === 0) {\n    throw new Error('invalid argv: expected a non-empty program name at argv[0]')\n  }\n\n  const isCollect = (mode: SubprocessOutputMode): mode is SubprocessCollect =>\n    mode !== 'pipe' && mode !== 'inherit'\n  const outMode = spec.stdio.stdout\n  const errMode = spec.stdio.stderr\n  const stdinMode = spec.stdio.stdin\n\n  const env = childEnv(spec.env)\n  const child = spawn(program, args, {\n    cwd: spec.cwd,\n    env,\n    stdio: [\n      stdinMode === 'ignore' ? 'ignore' : 'pipe',\n      outMode === 'inherit' ? 'inherit' : 'pipe',\n      errMode === 'inherit' ? 'inherit' : 'pipe',\n    ],\n    // `detached` gives teardown a tree root on POSIX (its own process group);","sourceCodeStart":322,"sourceCodeEnd":358,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/subprocess/subprocess-local/src/spawn.ts#L322-L358","documentation":"Error \"invalid argv: expected a non-empty program name at argv[0]\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/subprocess/subprocess-local/src/spawn.ts:340 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass argv with a non-empty program name at index 0."],"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"}