stablyai/orca · error · Error
Missing ${entryPath}; run pnpm exec electron-vite build firs
Error message
Missing ${entryPath}; run pnpm exec electron-vite build first What it means
Thrown by runBenchmark() when the built watchdog entry `out/main/main-thread-hang-watchdog-entry.js` does not exist (existsSync returns false). The benchmark forks/spawns this built artifact as the watchdog under test, so it must be produced by the Electron build before the benchmark can run.
Source
Thrown at config/scripts/hang-watchdog-memory-benchmark.mjs:365
)
}
const line = result.stdout.split('\n').find((candidate) => candidate.startsWith(RESULT_PREFIX))
if (line) {
return { ...JSON.parse(line.slice(RESULT_PREFIX.length)), launchAttempts: attempt }
}
if (attempt === MAX_LAUNCH_ATTEMPTS || result.stderr || result.stdout) {
throw new Error(`Electron trial did not report a result (status ${result.status})`)
}
}
throw new Error('Electron trial exhausted launcher attempts')
}
function runBenchmark() {
if (process.platform !== 'darwin') {
throw new Error('The production watchdog is macOS-only; run this benchmark on macOS')
}
if (!existsSync(entryPath)) {
throw new Error(`Missing ${entryPath}; run pnpm exec electron-vite build first`)
}
const options = parseArgs(process.argv.slice(2))
const builtEntry = readFileSync(entryPath, 'utf8')
const hasChildContract = builtEntry.includes('ORCA_HANG_WATCHDOG_PARENT_PID')
const hasWorkerContract = builtEntry.includes('workerData') && builtEntry.includes('parentPort')
if (
(options.boundary === 'child' && !hasChildContract) ||
(options.boundary === 'worker' && !hasWorkerContract)
) {
throw new Error(
`Built watchdog does not implement the requested ${options.boundary} boundary; rebuild the matching revision`
)
}
const executable = electronPath()
const results = Array.from({ length: options.trials }, () =>
runTrial(executable, options.boundary)
)
const rssBytes = results.map((result) => result.rssBytes)View on GitHub (pinned to 1136503c6a)
Solutions
- Run `pnpm exec electron-vite build` first to produce out/main/main-thread-hang-watchdog-entry.js.
- Verify the path exists: `ls out/main/main-thread-hang-watchdog-entry.js`.
- If the build output path changed, update entryPath in the script to match.
Example fix
# before node config/scripts/hang-watchdog-memory-benchmark.mjs --boundary child # out/ missing # after pnpm exec electron-vite build && node config/scripts/hang-watchdog-memory-benchmark.mjs --boundary child
Defensive patterns
Strategy: validation
Validate before calling
import { existsSync } from 'node:fs'
if (!existsSync(entryPath)) {
throw new Error(`run 'pnpm exec electron-vite build' first; missing ${entryPath}`)
} Prevention
- Always build before benchmarking.
- Add the build as a prerequisite step in CI before the benchmark job.
When it happens
Trigger: Running the benchmark before building, after `clean` wiped out/, on a fresh clone without a build step, or when electron-vite build failed silently.
Common situations: Fresh checkout, CI job that skips the build step, or a build configuration change that renamed/moved the output entry.
Related errors
- ${name} must be a positive integer, received ${value}
- ORCA_ADVERTISED_URL_BENCH_ROUNDS must be even
- ${name} must be a positive integer, received ${value}
- ${name} must be a positive integer, received ${value}
- --higher-is-better requires a metric key
AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12).
Data as JSON: /api/errors/ba727575c8b2dc89.
Report an issue: GitHub.