stablyai/orca · error · Error
This benchmark requires a Windows host with WSL
Error message
This benchmark requires a Windows host with WSL
What it means
Hard platform gate at the top of the WSL benchmark's main(): it refuses to run unless process.platform === 'win32'. The benchmark drives wsl.exe, which only exists on Windows, so on macOS/Linux it aborts immediately rather than producing confusing downstream failures.
Source
Thrown at config/scripts/wsl-hook-relay-reattach-benchmark.mjs:262
function percentile(samples, percentileValue) {
const sorted = [...samples].sort((left, right) => left - right)
return sorted[Math.ceil((percentileValue / 100) * sorted.length) - 1]
}
function summarize(samples) {
return {
samples: samples.length,
medianMs: Number(percentile(samples, 50).toFixed(1)),
p95Ms: Number(percentile(samples, 95).toFixed(1)),
minMs: Number(Math.min(...samples).toFixed(1)),
maxMs: Number(Math.max(...samples).toFixed(1))
}
}
async function main() {
if (process.platform !== 'win32') {
throw new Error('This benchmark requires a Windows host with WSL')
}
const options = parseArgs(process.argv.slice(2))
const distro = await resolveDistro(options.distro)
const nodeVersion = await run(
'wsl.exe',
wslArgs(distro, [
'/bin/sh',
'-c',
'for node_bin in "$(command -v node 2>/dev/null || true)" "$HOME/.local/bin/node"; do [ -x "$node_bin" ] || continue; "$node_bin" -p process.versions.node && exit 0; done; exit 1'
]),
{ allowFailure: true }
)
if (nodeVersion.status !== 0 || Number(nodeVersion.stdout.trim().split('.')[0]) < 18) {
throw new Error(`WSL distro '${distro}' needs Node.js 18 or newer to run Orca's relay`)
}
const bundleDir = join(process.cwd(), 'out', 'relay', 'wsl')
const bundlePath = join(bundleDir, 'wsl-agent-hook-relay.js')View on GitHub (pinned to 1136503c6a)
Solutions
- Run the benchmark on a Windows host (native or Windows CI runner).
- If invoking from a script, guard with `process.platform === 'win32'` before calling so non-Windows lanes skip cleanly.
- In CI, restrict this benchmark to the windows-latest job and skip it elsewhere.
Example fix
// before
if (process.platform !== 'win32') {
throw new Error('This benchmark requires a Windows host with WSL')
}
// after — exit zero for CI skips, non-zero only when misinvoked
if (process.platform !== 'win32') {
if (process.env.CI) { console.log('skip: requires Windows'); process.exit(0) }
throw new Error('This benchmark requires a Windows host with WSL')
} Defensive patterns
Strategy: validation
Validate before calling
// Skip cleanly on non-Windows in CI before invoking
if (process.platform !== 'win32' && process.env.CI) {
console.log('skip: wsl benchmark requires Windows')
process.exit(0)
}
if (process.platform !== 'win32') {
throw new Error('This benchmark requires a Windows host with WSL')
} Prevention
- Gate CI jobs by OS so the benchmark only runs on windows-latest.
- Add a `--help` that prints the Windows-only requirement.
- Document the platform requirement at the top of the script.
When it happens
Trigger: Executing `node config/scripts/wsl-hook-relay-reattach-benchmark.mjs` on a non-Windows OS (macOS dev machine, Linux CI runner).
Common situations: Running the full benchmark suite on a macOS/Linux developer machine, or a CI matrix that does not skip WSL benchmarks on non-Windows lanes.
Related errors
- No user WSL distro found. Install/enable WSL or pass --distr
- Windows inner executable signature verification requires Win
- Timed out waiting for ${description}
- Could not reserve a guest port: ${result.stdout}
- WSL distro '${distro}' needs Node.js 18 or newer to run Orca
AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12).
Data as JSON: /api/errors/b31010d07b340655.
Report an issue: GitHub.