Skip to content

Null Audio Device Not Initialised on Startup #13668

@lmmednie

Description

@lmmednie

Description

GitHub Actions macOS runners intermittently fail to initialize the Null Audio Device on startup, causing Web Audio API operations in Safari to fail with kAudioQueueErr_InvalidDevice (-66680). This breaks E2E tests that rely on browser audio capabilities.

Impact

  • E2E tests using Web Audio API fail intermittently (audio playback validation, WebRTC testing, etc.)
  • All-or-nothing failure pattern: When audio device is missing, ALL tests requiring audio fail in that workflow run
  • Unpredictable CI/CD: Same test suite passes or fails based on runner state, not code changes
  • Wasted compute time: Tests run to completion before discovering audio unavailability

Platforms affected

  • Azure DevOps
  • GitHub Actions - Standard Runners
  • GitHub Actions - Larger Runners

Runner images affected

  • Ubuntu 22.04
  • Ubuntu 24.04
  • Ubuntu Slim
  • macOS 14
  • macOS 14 Arm64
  • macOS 15
  • macOS 15 Arm64
  • macOS 26
  • macOS 26 Arm64
  • Windows Server 2022
  • Windows Server 2025
  • Windows Server 2025 with Visual Studio 2026

Image version and build link

Runner Image
Image: macos-15
Version: 20260209.0153.1
Included Software: https://github.com/actions/runner-images/blob/macos-15/20260209.0153/images/macos/macos-15-Readme.md
Image Release: https://github.com/actions/runner-images/releases/tag/macos-15%2F20260209.0153

Is it regression?

Unsure, issue in some form present since at least Oct 7, 2025

Expected behavior

The macOS Null Audio Device should be initialised and available when the runner starts, allowing applications and browsers to use audio capabilities (including Web Audio API) without additional configuration.

Expected output from system_profiler SPAudioDataType:

Audio:
    Devices:
        Null Audio Device:
          Default Input Device: Yes
          Default Output Device: Yes
          Default System Output Device: Yes
          Input Channels: 2
          Manufacturer: Apple Inc.
          Output Channels: 2
          Current SampleRate: 44100
          Transport: Virtual

Actual behavior

On a significant percentage of workflow runs, the Null Audio Device is not initialised, leaving no audio devices available on the system.

Actual output from system_profiler SPAudioDataType:

Audio:
    Devices:

Repro steps

name: Reproduce Audio Device Issue

on: [push, workflow_dispatch]

jobs:
  test-audio:
    runs-on: macos-15-large
    steps:
      - name: Check Audio Devices
        run: |
          echo "=== Checking for audio devices ==="
          system_profiler SPAudioDataType
          
          echo ""
          echo "=== Testing audio playback ==="
          # Create a test audio file
          ffmpeg -f lavfi -i "sine=frequency=440:duration=1" -ar 48000 test.wav
          
          # Try to play it
          afplay test.wav || echo "ERROR: afplay failed"
          
          rm -f test.wav
          
      - name: Verify Null Audio Device Exists
        run: |
          if ! system_profiler SPAudioDataType | grep -q "Null Audio Device"; then
            echo "FAIL: Null Audio Device not found"
            exit 1
          else
            echo "PASS: Null Audio Device exists"
          fi

Expected: Test passes consistently
Actual: Test fails intermittently (~30% fail rate) with no Null Audio Device found

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions