[Linux/Wayland] Mic stream fails with "OnSizeReceived" error

Description of the issue:

When attempting to use the microphone on any website, Brave enters a rapid connect/disconnect loop, preventing any audio input. Running Brave from a terminal reveals a repeating error: ERROR:services/network/chunked_data_pipe_upload_data_stream.cc:217] OnSizeReceived failed with Error: -2.

This issue is specific to Brave, as Firefox functions perfectly with the same microphone on the same system.

Steps to Reproduce:

  1. Launch Brave on a system running Arch Linux with Hyprland (Wayland) and PipeWire.

  2. Navigate to any website that requires microphone access (e.g., https://mictests.com/, https://speechnotes.co/dictate/).

  3. Click the button to activate the microphone and grant permission when prompted.

Actual Result:

  • The microphone does not capture any audio.

  • System-level audio indicators (like the mic icon in pavucontrol) start blinking/flashing constantly, indicating a connect/disconnect loop.

  • The terminal where Brave was launched is spammed with the following error message multiple times per second:
    [ERROR:services/network/chunked_data_pipe_upload_data_stream.cc:217] OnSizeReceived failed with Error: -2

  • The pw-top utility confirms that a “Brave” client appears and disappears from the audio graph in a loop.

Expected Result:

  • The microphone permission is successfully granted.

  • The microphone’s recording stream is established and remains stable.

  • Audio is successfully captured and transmitted to the website.

  • No errors are spammed to the terminal.

Reproduces how often:

Always.

Brave Version:

v 1.80.115

Reproducible on current live release:

Yes.

Additional information:

This bug has been extensively debugged, and the issue has been isolated to Brave Browser itself.

  • System Proven Correct: The microphone and entire system audio stack (PipeWire, xdg-desktop-portal-hyprland) are confirmed to be working correctly, as audio input functions fine in Firefox and OBS on the same machine.

  • Not a Profile Corruption Issue: The bug persists even after performing a complete “clean reinstall” (deleting ~/.config/BraveSoftware and ~/.cache/BraveSoftware and migrating only essential data like bookmarks and passwords to a new profile).

  • Not a Brave Shields Issue: The bug persists when Brave Shields are disabled for the site and globally.

  • Not a Sandbox Issue: The bug persists when Brave is launched with the --no-sandbox command-line flag.

This combination of tests indicate the bug is not in the underlying system, or user configuration.

System Specifications:

  • OS: Arch Linux (up-to-date)

  • Window Manager: Hyprland (Wayland)

  • Audio Server: PipeWire