{"record":{"id":"1468242e3d16e729","repo":"moeru-ai/airi","slug":"godot4-must-point-to-the-godot-executable-file-no","errorCode":null,"errorMessage":"GODOT4 must point to the Godot executable file, not a directory or app bundle.\\nConfigured path: ${executable}\\nExamples:\\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","messagePattern":"GODOT4 must point to the Godot executable file, not a directory or app bundle\\.\\\\nConfigured path: (.+?)\\\\nExamples:\\\\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","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"apps/stage-tamagotchi/src/main/services/airi/godot-stage/index.ts","lineNumber":334,"sourceCode":"  }\n}\n\nasync function validateConfiguredGodotEnginePath(executable: string) {\n  let executableStats\n  try {\n    executableStats = await stat(executable)\n  }\n  catch (error) {\n    throw new Error(\n      'GODOT4 points to a missing Godot executable.\\n'\n      + `Configured path: ${executable}\\n`\n      + 'Set GODOT4 to the absolute path of your Godot 4.x .NET/Mono executable before starting dev mode.\\n'\n      + `Original error: ${errorMessageFrom(error) ?? 'unknown error'}`,\n    )\n  }\n\n  if (!executableStats.isFile()) {\n    throw new Error(\n      'GODOT4 must point to the Godot executable file, not a directory or app bundle.\\n'\n      + `Configured path: ${executable}\\n`\n      + 'Examples:\\n'\n      + '  Windows: C:\\\\Path\\\\To\\\\Godot_v4.x-stable_mono_win64.exe\\n'\n      + '  macOS: /Applications/Godot_mono.app/Contents/MacOS/Godot\\n'\n      + '  Linux: /path/to/Godot_v4.x-stable_mono_linux.x86_64',\n    )\n  }\n}\n\nasync function resolveGodotBinary(): Promise<GodotBinaryResolution> {\n  if (app.isPackaged) {\n    const exported = await resolveExportedGodotBinary()\n    if (exported) {\n      return { executable: exported, mode: 'exported' }\n    }\n\n    throw new Error(","sourceCodeStart":316,"sourceCodeEnd":352,"githubUrl":"https://github.com/moeru-ai/airi/blob/27111382b4a79a7e983289d6e983a06af185ed0f/apps/stage-tamagotchi/src/main/services/airi/godot-stage/index.ts#L316-L352","documentation":"Thrown by validateConfiguredGodotEnginePath when stat(GODOT4) succeeded but the entry is not a regular file — i.e. the path points to a directory or an app bundle (macOS .app). The message lists platform-specific examples of a correct executable path.","triggerScenarios":"GODOT4 points at a directory (e.g. /opt/godot) or, on macOS, at the bundle root (e.g. /Applications/Godot_mono.app) instead of the inner MacOS executable.","commonSituations":"User pasted the folder containing Godot rather than the binary; on macOS the user dragged the .app path from Finder; the path resolves to a symlinked directory.","solutions":["On macOS, point GODOT4 at the inner binary, e.g. /Applications/Godot_mono.app/Contents/MacOS/Godot.","On Windows/Linux, point at the executable file (godot.exe / the .x86_64 binary), not its containing folder.","Run `file \"$GODOT4\"` to confirm the entry is an executable file before launching."],"exampleFix":"# before (macOS)\nexport GODOT4=\"/Applications/Godot_mono.app\"\n\n# after\nexport GODOT4=\"/Applications/Godot_mono.app/Contents/MacOS/Godot\"","handlingStrategy":"validation","validationCode":"import { stat } from 'node:fs/promises'\n\nasync function isExecutableFile(path: string): Promise<boolean> {\n  try { return (await stat(path)).isFile() } catch { return false }\n}","typeGuard":"async function isRegularFile(path: string): Promise<boolean> {\n  try { return (await stat(path)).isFile() } catch { return false }\n}","tryCatchPattern":null,"preventionTips":["On macOS point GODOT4 at the inner Contents/MacOS binary, not the .app bundle.","On Windows/Linux point at the executable file, not its folder.","Run `file \"$GODOT4\"` to confirm it is an executable file."],"tags":["godot-stage","environment-variables","filesystem","development","macos","configuration"],"backgroundTag":null,"analyzedSha":"27111382b4a79a7e983289d6e983a06af185ed0f","analyzedAt":"2026-08-12T18:33:34.132Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}