stablyai/orca · error · Error

Missing ${ENTRY_PATH}; run pnpm run build:electron-vite firs

Error message

Missing ${ENTRY_PATH}; run pnpm run build:electron-vite first

What it means

This verification/probe script requires the compiled Electron main bundle to exist at out/main/parcel-watcher-process-entry.js before it can exercise the runtime watcher process pool. The check is a hard precondition: without the built entry the script cannot load the RuntimeWatcherProcessPool/WatcherProcessFailure modules it needs to probe. The message names the exact build step (pnpm run build:electron-vite) that produces the artifact.

Source

Thrown at config/scripts/runtime-file-watcher-resource-probe.mjs:25

import { promisify } from 'node:util'
import { build } from 'esbuild'

const ENTRY_PATH = resolve('out/main/parcel-watcher-process-entry.js')
const POOL_SOURCE = resolve('src/main/ipc/runtime-watcher-process-pool.ts')
const FAILURE_SOURCE = resolve('src/main/ipc/parcel-watcher-process-failure.ts')
const REGISTRY_SOURCE = resolve('src/main/ipc/parcel-watcher-child-registry.ts')
const MAX_CHILD_RSS_KIB = 128 * 1024
const MAX_CHILD_CPU_PERCENT = 50
const MAX_QUARANTINE_RSS_KIB = 512 * 1024
const MAX_QUARANTINE_CPU_PERCENT = 100
const PHYSICAL_CHILD_CAP = 8
const WAIT_TIMEOUT_MS = 15_000
const execFileAsync = promisify(execFile)
const require = createRequire(import.meta.url)

async function main() {
  if (!existsSync(ENTRY_PATH)) {
    throw new Error(`Missing ${ENTRY_PATH}; run pnpm run build:electron-vite first`)
  }

  const createdRoots = []
  const exactPids = new Set()
  let bundleDir
  let pool
  let result
  try {
    bundleDir = await mkdtemp(join(tmpdir(), 'orca-runtime-watcher-resource-'))
    const { RuntimeWatcherProcessPool, WatcherProcessFailure, reserveWatcherChild } =
      await loadProbe(bundleDir)
    const roots = []
    for (let index = 0; index < 5; index++) {
      const createdRoot = await mkdtemp(join(tmpdir(), `orca-watcher-resource-${index}-`))
      createdRoots.push(createdRoot)
      roots.push(await realpath(createdRoot))
    }

View on GitHub (pinned to 1136503c6a)

Solutions

  1. Run `pnpm run build:electron-vite` from the repo root, then re-run the probe.
  2. Confirm the entry filename still matches: grep for `parcel-watcher-process-entry` in the electron-vite config; if the build renames it, update ENTRY_PATH (line 10) to match.
  3. If a prior build exists but out/ was cleaned, rerun the build; do not copy the entry in by hand.

Example fix

// before: probe run against a clean tree
node config/scripts/runtime-file-watcher-resource-probe.mjs
// after
pnpm run build:electron-vite && node config/scripts/runtime-file-watcher-resource-probe.mjs
Defensive patterns

Strategy: validation

Validate before calling

import { existsSync } from 'node:fs'
import { resolve } from 'node:path'
const ENTRY_PATH = resolve('out/main/parcel-watcher-process-entry.js')
if (!existsSync(ENTRY_PATH)) {
  console.error(`Build artifact missing. Run: pnpm run build:electron-vite`)
  process.exit(1)
}

Prevention

When it happens

Trigger: Running config/scripts/runtime-file-watcher-resource-probe.mjs directly or via a CI target before the electron-vite main bundle has been emitted. Concretely existsSync('out/main/parcel-watcher-process-entry.js') returns false inside main() at line 24.

Common situations: Running the watcher resource probe in isolation on a fresh clone, after `git clean -fdx`, after switching branches that delete out/, or in a CI job whose matrix leg skips the build step. Also after changing the entry filename without updating ENTRY_PATH on line 10.

Related errors


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