{"record":{"id":"6f155d65bcbb7557","repo":"stablyai/orca","slug":"expected-hardware-acceleration-to-remain-enabled","errorCode":null,"errorMessage":"Expected hardware acceleration to remain enabled, but --disable-gpu is set.","messagePattern":"Expected hardware acceleration to remain enabled, but --disable-gpu is set\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"config/scripts/verify-linux-wayland-gpu-sandbox.mjs","lineNumber":278,"sourceCode":"      'app.switches',\n      `disableGpuSandbox=${commandLineSwitches.disableGpuSandbox} disableGpu=${commandLineSwitches.disableGpu}`\n    )\n\n    if (mode === 'expect-repro' && commandLineSwitches.disableGpuSandbox) {\n      throw new MissingReproductionError(\n        'Base run already has --disable-gpu-sandbox; cannot validate the unfixed Wayland path.'\n      )\n    }\n    if (mode === 'expect-repro' && commandLineSwitches.disableGpu) {\n      throw new MissingReproductionError(\n        'Base run has --disable-gpu; hardware acceleration is disabled and would mask the GPU sandbox path.'\n      )\n    }\n    if (mode === 'verify-fix' && !commandLineSwitches.disableGpuSandbox) {\n      throw new Error('Expected --disable-gpu-sandbox on Linux Wayland, but it was absent.')\n    }\n    if (mode === 'verify-fix' && commandLineSwitches.disableGpu) {\n      throw new Error('Expected hardware acceleration to remain enabled, but --disable-gpu is set.')\n    }\n\n    logPhase('window.first')\n    page = await runWithTimeout('first renderer window', () => app.firstWindow(), timeoutMs)\n    logPhase('window.load')\n    await runWithTimeout(\n      'renderer domcontentloaded',\n      () => page.waitForLoadState('domcontentloaded'),\n      rendererSetupTimeoutMs\n    )\n    logPhase('window.loaded')\n    const ptyId = await setupTerminal(page, repoPath, logPhase)\n    terminalExerciseStarted = true\n    logPhase('exercise.start')\n    const scroll = await assertScrollbackBufferWorks(page, ptyId, runId, logPhase)\n    const typedMarkers = await assertKeyboardInputWorks(page, ptyId, repoPath, runId, logPhase)\n    const gpuCrashLines = stderrLines.filter((line) => gpuCrashPattern.test(line))\n","sourceCodeStart":260,"sourceCodeEnd":296,"githubUrl":"https://github.com/stablyai/orca/blob/1136503c6a231a16dce8f921f6fadb63d181e8db/config/scripts/verify-linux-wayland-gpu-sandbox.mjs#L260-L296","documentation":"In --mode=verify-fix the script also asserts hardware acceleration stays ON (no --disable-gpu). The fix is meant to disable only the GPU sandbox, not GPU acceleration itself; if --disable-gpu is also set the fix is over-broad and would hide real rendering issues. So verify-fix requires --disable-gpu-sandbox present AND --disable-gpu absent.","triggerScenarios":"mode === 'verify-fix' AND commandLineSwitches.disableGpu is true at line 277. Triggered when the launch args include both --disable-gpu-sandbox and --disable-gpu (the latter should not be there).","commonSituations":"A flags change that started disabling all GPU along with the sandbox; a headless runner forcing --disable-gpu; a copy-paste in the launch-args builder.","solutions":["Remove --disable-gpu from the Electron launch args so only --disable-gpu-sandbox remains.","Audit the code that constructs Electron command-line switches on Wayland.","Re-run verify-fix to confirm only the sandbox switch is present."],"exampleFix":"// before\napp.commandLine.appendSwitch('disable-gpu')\napp.commandLine.appendSwitch('disable-gpu-sandbox')\n// after\napp.commandLine.appendSwitch('disable-gpu-sandbox')","handlingStrategy":"validation","validationCode":"if (mode === 'verify-fix' && electronApp.commandLine.hasSwitch('disable-gpu')) {\n  console.error('verify-fix requires hardware acceleration ON; remove --disable-gpu from launch args.')\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Only append --disable-gpu-sandbox on Wayland; never --disable-gpu.","Audit Electron command-line switch construction after any flags refactor."],"tags":["wayland","gpu","hardware-acceleration","fix","electron-flags"],"backgroundTag":null,"analyzedSha":"1136503c6a231a16dce8f921f6fadb63d181e8db","analyzedAt":"2026-08-12T23:15:58.167Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}