stablyai/orca · error · Error

--boundary must be child or worker

Error message

--boundary must be child or worker

What it means

Thrown by parseArgs after parsing completes if options.boundary is not 'child' or 'worker'. This catches a missing --boundary entirely (defaults to empty string '') or a misspelled boundary value that passed the per-token parser.

Source

Thrown at config/scripts/hang-watchdog-memory-benchmark.mjs:296

}

function parseArgs(argv) {
  const options = { boundary: '', trials: DEFAULT_TRIALS, output: '' }
  for (let index = 0; index < argv.length; index += 1) {
    const arg = argv[index]
    const value = argv[index + 1]
    if (arg === '--boundary' || arg === '--trials' || arg === '--output') {
      if (!value) {
        throw new Error(`Missing value for ${arg}`)
      }
      options[arg.slice(2)] = arg === '--trials' ? Number(value) : value
      index += 1
    } else {
      throw new Error(`Unknown argument: ${arg}`)
    }
  }
  if (!['child', 'worker'].includes(options.boundary)) {
    throw new Error('--boundary must be child or worker')
  }
  if (!Number.isInteger(options.trials) || options.trials < 1) {
    throw new Error('--trials must be a positive integer')
  }
  return options
}

function electronPath() {
  const requirePath = import.meta.resolve('electron')
  const electronModulePath = fileURLToPath(requirePath)
  return execFileSync(
    process.execPath,
    ['-e', `process.stdout.write(require(${JSON.stringify(electronModulePath)}))`],
    {
      encoding: 'utf8'
    }
  )
}

View on GitHub (pinned to 1136503c6a)

Solutions

  1. Always pass `--boundary child` or `--boundary worker`.
  2. Add the flag to the CI workflow template so it is never omitted.

Example fix

// before
node config/scripts/hang-watchdog-memory-benchmark.mjs --trials 7
// after
node config/scripts/hang-watchdog-memory-benchmark.mjs --boundary worker --trials 7
Defensive patterns

Strategy: validation

Validate before calling

const boundary = options.boundary
if (boundary !== 'child' && boundary !== 'worker') {
  throw new Error(`--boundary must be child or worker, got: ${boundary}`)
}

Type guard

const isSupportedBoundary = (v: unknown): v is 'child' | 'worker' => v === 'child' || v === 'worker'

Prevention

When it happens

Trigger: Omitting --boundary entirely, or passing `--boundary process` / `--boundary main` / any string outside the allowlist.

Common situations: Forgetting the flag in a new CI job, copy-pasting an outdated command, or assuming a default boundary exists (there is none).

Related errors


AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12). Data as JSON: /api/errors/011a4ff88a472a56. Report an issue: GitHub.