moeru-ai/airi · critical · Error
Godot stage exported binary not found. Expected at: ${join(p
Error message
Godot stage exported binary not found. Expected at: ${join(process.resourcesPath, 'godot-stage')} What it means
Thrown by resolveGodotBinary in a packaged Electron build when resolveExportedGodotBinary returns undefined — i.e. no platform-appropriate exported Godot stage sidecar was found under process.resourcesPath/godot-stage. Packaged builds rely on a pre-exported binary shipped in Electron resources rather than the dev-mode GODOT4 engine.
Source
Thrown at apps/stage-tamagotchi/src/main/services/airi/godot-stage/index.ts:352
throw new Error(
'GODOT4 must point to the Godot executable file, not a directory or app bundle.\n'
+ `Configured path: ${executable}\n`
+ 'Examples:\n'
+ ' Windows: C:\\Path\\To\\Godot_v4.x-stable_mono_win64.exe\n'
+ ' macOS: /Applications/Godot_mono.app/Contents/MacOS/Godot\n'
+ ' Linux: /path/to/Godot_v4.x-stable_mono_linux.x86_64',
)
}
}
async function resolveGodotBinary(): Promise<GodotBinaryResolution> {
if (app.isPackaged) {
const exported = await resolveExportedGodotBinary()
if (exported) {
return { executable: exported, mode: 'exported' }
}
throw new Error(
'Godot stage exported binary not found. '
+ `Expected at: ${join(process.resourcesPath, 'godot-stage')}`,
)
}
const envPath = process.env.GODOT4?.trim()
if (!envPath) {
throw new Error(
'GODOT4 is required to start Godot Stage in development mode.\n'
+ 'Set GODOT4 to the absolute path of your Godot 4.x .NET/Mono executable, then restart the Electron dev app.\n'
+ 'Examples:\n'
+ ' PowerShell: $env:GODOT4 = "C:\\Path\\To\\Godot_v4.x-stable_mono_win64.exe"\n'
+ ' Bash: export GODOT4="/path/to/godot"',
)
}
await validateConfiguredGodotEnginePath(envPath)
return { executable: envPath, mode: 'engine' }View on GitHub (pinned to 27111382b4)
Solutions
- Rebuild the package ensuring the godot-stage export for the target platform is included under resources/godot-stage (check electron-builder extraResources).
- Verify the packaged app's resources directory actually contains the godot-stage binary for the running OS.
- Run the export pipeline (engines/stage-tamagotchi-godot) for the target platform before packaging.
- If you intended dev mode, ensure app.isPackaged reports false (run via the dev script, not the packaged bundle).
Defensive patterns
Strategy: validation
Validate before calling
import { existsSync } from 'node:fs'
import { join } from 'node:path'
function exportedBinaryPackaged(): boolean {
return existsSync(join(process.resourcesPath, 'godot-stage'))
} Type guard
function exportedBinaryPackaged(): boolean {
return existsSync(join(process.resourcesPath, 'godot-stage'))
} Prevention
- Include the godot-stage export in electron-builder extraResources for each target platform.
- Run the Godot export pipeline before packaging.
- Verify the packaged resources directory contains the sidecar.
When it happens
Trigger: app.isPackaged is true and the export step did not place (or the packaging config did not include) the godot-stage binary under resourcesPath for the current platform.
Common situations: Packaging pipeline (electron-builder config) omitted the extraResources entry for godot-stage; cross-platform build produced artifacts for a different OS than the one running; the sidecar was stripped by a cleanup step; running an unpackaged-as-packaged misconfiguration.
Related errors
- Invalid Godot stage scene input payload.
- Unable to locate engines/stage-tamagotchi-godot/project.godo
- Godot stage is not running.
- Godot stage bridge is not connected.
- Previous Godot stage process is still shutting down. Retry a
AI-assisted analysis of moeru-ai/airi@27111382b4 (2026-08-12).
Data as JSON: /api/errors/f7013d41d54ad685.
Report an issue: GitHub.