stablyai/orca · error
Windows inner executable does not exist: ${executablePath}
Error message
Windows inner executable does not exist: ${executablePath} What it means
Thrown by validateExecutablePath() when the provided path passes the string check but existsSync() returns false. The executable file does not exist at the given path. This is a filesystem-level check before any PowerShell invocation.
Source
Thrown at config/scripts/verify-windows-inner-signature.mjs:124
export function formatSignatureSummary(signature) {
return [
`Status: ${signature.status ?? '<missing>'}`,
`Subject: ${normalizeSignerSubject(signature.signerSubject) || '<missing>'}`,
`Issuer: ${signature.signerIssuer ?? '<missing>'}`,
`Thumbprint: ${normalizeThumbprint(signature.signerThumbprint) || '<missing>'}`,
`NotBefore: ${signature.notBefore ?? '<missing>'}`,
`NotAfter: ${signature.notAfter ?? '<missing>'}`
].join('\n')
}
export function validateExecutablePath(executablePath) {
if (typeof executablePath !== 'string' || executablePath.trim() === '') {
throw new Error('Usage: node config/scripts/verify-windows-inner-signature.mjs <Orca.exe>')
}
if (!existsSync(executablePath)) {
throw new Error(`Windows inner executable does not exist: ${executablePath}`)
}
if (!statSync(executablePath).isFile()) {
throw new Error(`Windows inner executable path is not a file: ${executablePath}`)
}
}
export function getPowerShellSignatureJson(executablePath, spawnSyncImpl = spawnSync) {
// Why: pwsh -Command does not reliably expose trailing process args to string commands.
const result = spawnSyncImpl(
'pwsh',
[
'-NoLogo',
'-NoProfile',
'-NonInteractive',
'-ExecutionPolicy',
'Bypass',
'-Command',View on GitHub (pinned to 1136503c6a)
Solutions
- Verify the path exists: use the absolute path to the inner Orca.exe (not the Squirrel setup wrapper).
- Ensure the build/packaging step that produces Orca.exe runs before the signature verifier.
- If using a relative path, check it resolves against the expected cwd — prefer an absolute path.
Example fix
// before: path points to outer wrapper or wrong dir node verify-windows-inner-signature.mjs ./Release/Orca.exe // after: absolute path to the actual inner executable node verify-windows-inner-signature.mjs "$PWD/Release/win-unpacked/Orca.exe"
Defensive patterns
Strategy: validation
Validate before calling
function assertExecutableExists(path) {
if (!existsSync(path)) {
throw new Error(`Expected Orca.exe not found at: ${path}. Build may not have completed.`)
}
} Type guard
function isExistingPath(path) {
try { return existsSync(path) } catch { return false }
} Prevention
- Run the build step before the signature verification step in CI.
- Use the absolute path to the unpacked inner exe, not the Squirrel wrapper.
- Assert the file exists in the CI pipeline before calling the verifier.
When it happens
Trigger: validateExecutablePath(executablePath) where executablePath is a non-empty string but existsSync(executablePath) is false. Caused by: a wrong path, a build step that hasn't produced Orca.exe yet, a relative path resolved against the wrong cwd, or a packaging pipeline pointing to the wrong output directory.
Common situations: CI running the verifier before the build step completes; a path pointing to the outer Squirrel/MSIX wrapper when the inner exe is expected; a relative path that resolves differently on the CI runner; a post-cleanup step that removed the file.
Related errors
- Windows inner executable path is not a file: ${executablePat
- Packaged node-pty is missing ${conptyRoot}
- Packaged node-pty is missing ${sourceFile}
- Managed Claude auth directory does not exist on disk.
- Missing packaged resources directory: ${resourcesDir}
AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12).
Data as JSON: /api/errors/c8c36ae6e9623f6d.
Report an issue: GitHub.