stablyai/orca · warning · MissingReproductionError

Base run already has --disable-gpu-sandbox; cannot validate

Error message

Base run already has --disable-gpu-sandbox; cannot validate the unfixed Wayland path.

What it means

In --mode=expect-repro the script must exercise the UNFIXED Wayland GPU path so it can confirm the bug still reproduces. If the launched Electron app already carries --disable-gpu-sandbox on its command line, the unfixed path is masked and the reproduction is invalid — the script throws MissingReproductionError. This is a test-integrity failure, not an app bug: it means the harness cannot trust a non-crash as evidence.

Source

Thrown at config/scripts/verify-linux-wayland-gpu-sandbox.mjs:265

    )
    commandLineSwitches = await runWithTimeout(
      'Electron command-line switches',
      () =>
        app.evaluate(({ app: electronApp }) => ({
          disableGpuSandbox: electronApp.commandLine.hasSwitch('disable-gpu-sandbox'),
          disableGpu: electronApp.commandLine.hasSwitch('disable-gpu'),
          ozonePlatform: electronApp.commandLine.getSwitchValue('ozone-platform'),
          enableFeatures: electronApp.commandLine.getSwitchValue('enable-features')
        })),
      rendererSetupTimeoutMs
    )
    logPhase(
      'app.switches',
      `disableGpuSandbox=${commandLineSwitches.disableGpuSandbox} disableGpu=${commandLineSwitches.disableGpu}`
    )

    if (mode === 'expect-repro' && commandLineSwitches.disableGpuSandbox) {
      throw new MissingReproductionError(
        'Base run already has --disable-gpu-sandbox; cannot validate the unfixed Wayland path.'
      )
    }
    if (mode === 'expect-repro' && commandLineSwitches.disableGpu) {
      throw new MissingReproductionError(
        'Base run has --disable-gpu; hardware acceleration is disabled and would mask the GPU sandbox path.'
      )
    }
    if (mode === 'verify-fix' && !commandLineSwitches.disableGpuSandbox) {
      throw new Error('Expected --disable-gpu-sandbox on Linux Wayland, but it was absent.')
    }
    if (mode === 'verify-fix' && commandLineSwitches.disableGpu) {
      throw new Error('Expected hardware acceleration to remain enabled, but --disable-gpu is set.')
    }

    logPhase('window.first')
    page = await runWithTimeout('first renderer window', () => app.firstWindow(), timeoutMs)
    logPhase('window.load')

View on GitHub (pinned to 1136503c6a)

Solutions

  1. Confirm you are testing a build WITHOUT the fix when running --mode=expect-repro (checkout the pre-fix commit or disable the auto-applied switch).
  2. Remove any global Electron flags file or env that injects --disable-gpu-sandbox.
  3. If the fix is now always-on, expect-repro is no longer meaningful — run --mode=verify-fix instead.
Defensive patterns

Strategy: validation

Validate before calling

if (mode === 'expect-repro' && electronApp.commandLine.hasSwitch('disable-gpu-sandbox')) {
  console.error('expect-repro requires the UNFIXED build; the fix is masking the repro.')
}

Try / catch

try {
  await runScenario(app, 'expect-repro')
} catch (error) {
  if (error instanceof MissingReproductionError) {
    // harness integrity failure — do not treat as 'bug fixed'
    console.error('Reproduction masked:', error.message)
  }
  throw error
}

Prevention

When it happens

Trigger: mode === 'expect-repro' AND electronApp.commandLine.hasSwitch('disable-gpu-sandbox') is true at line 264. Happens when the Electron build/launch args already inject --disable-gpu-sandbox (e.g. a leftover default, a global flags file, or the fix landed and is now always-on).

Common situations: The GPU-sandbox fix was merged so the app now always disables the sandbox; a stale electron command-line flags file; running expect-repro against a build that already ships the workaround.

Related errors


AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12). Data as JSON: /api/errors/6a9af85bb2d92ff2. Report an issue: GitHub.