Community-Driven Bug Fixing: Solving a Wayland Crash in 72 Hours

⚡ Chromium 🔧 C++ / Wayland 👤 Helmut Januschka

When Chrome crashes, the community debugs - a story of open source collaboration

Update 16.10.2025: ✅ Fix landed and merged to Chromium main branch

The Problem Surfaces

On October 3rd, 2025, users started reporting Chrome crashes across multiple Linux distributions. The symptoms were consistent: move a Chrome window between monitors on Wayland, instant crash. The error logs pointed to Wayland protocol violations.

What made this interesting: it wasn't specific to one distro or configuration. Omarchy users, Arch Linux users, Fedora users - all seeing the same crash. Chrome 141 had introduced a regression that affected the entire Wayland ecosystem.

The Omarchy community became the epicenter for this investigation - not because the bug was Omarchy-specific, but because Omarchy represents a movement of people who fix things fast, share openly, and embrace OSS values. When something breaks, they debug collectively and push fixes upstream where everyone benefits.

Community Debugging

The GitHub issue (#2184) became a hub for collective troubleshooting. Users shared logs, system configurations, and workarounds:

This is open source at its best: distributed debugging. Each data point narrowed the search space.

The Investigation

The error logs showed a clear pattern:

libwayland: wl_display#1: error 0: invalid object 64
Trace/breakpoint trap (core dumped)

Wayland protocol errors are unforgiving - violate the protocol, lose your connection, crash immediately.

The community had already identified the timeline:

With a reproducible case (two monitors, Wayland, move window), finding the bug became straightforward code archaeology.

The Root Cause

The color management feature was re-enabled in Chrome 141 after being temporarily disabled for HDR issues. When a window moves between monitors with different color profiles, Wayland sends a preferred_changed event.

Chrome's handler created a new image description object but destroyed the old one too late - after creating the new one. The Wayland protocol specification is explicit: destroy earlier image descriptions before creating new ones.

// The bug: old object destroyed after new one created
CreateNewImageDescription();
DestroyOldImageDescription(); // Too late! Protocol violation.

// The fix: proper lifecycle ordering
DestroyOldImageDescription();
CreateNewImageDescription(); // Now Wayland is happy

A simple timing bug with catastrophic consequences.

Parallel Solutions

While the Chromium fix was being developed, the Hyprland team created their own workaround (PR #11877) to handle Chrome's incorrect ordering more gracefully. This helped their users immediately but didn't solve the root cause.

The proper fix needed to be in Chromium - the protocol violation was on Chrome's side.

The Fix

Chromium Bug: 449370049
Fix CL: 7003036
Merged: October 6, 2025 (3 days from initial report)
Reviewers: Thomas Anderson, Tom Lukaszewicz

The fix was minimal - just reordering the object lifecycle to match protocol requirements. Small change, huge impact.

Why This Matters

This bug affected:

Open source enabled rapid response:

  1. Users reported with detailed logs
  2. Community identified workarounds
  3. Bug was reproduced and fixed
  4. Fix merged upstream in 3 days
  5. Everyone benefits from the same fix

No NDAs. No private bug trackers. No waiting for vendor support contracts. Just people sharing information until the problem was solved.

Status: Fixed

The fix has landed in Chromium main branch and will reach stable releases in the coming weeks. Until then, users experiencing crashes can use these workarounds:

Option 1: Disable color management

chrome --ozone-platform=wayland --disable-features=WaylandWpColorManagerV1

Option 2: Use X11 backend

chrome --ozone-platform=x11 --force-device-scale-factor=1

Option 3: Install Chromium from tip-of-tree (includes the fix)

The Takeaway

This wasn't about heroic debugging or individual brilliance. This was about open source working as designed - and about communities like Omarchy that embody these values:

From first report to merged fix: 72 hours. The Omarchy movement isn't just about a Linux distribution - it's about embracing the speed, openness, and collaborative spirit that makes open source powerful. When you fix it for everyone, everyone wins.


Links: