Chromium based browsers crash when moved to a diffrent monitor

Hyprland version
Hyprland 0.51.1 built from branch  at commit 71a1216abcc7031776630a6d88f105605c4dc1c9  ([gha] Nix: update inputs).
Date: Mon Sep 22 20:54:03 2025
Tag: v0.51.1, commits: 6436
built against:
 aquamarine 0.9.5
 hyprlang 0.6.3
 hyprutils 0.10.0
 hyprcursor 0.1.13
 hyprgraphics 0.2.0


no flags were set

Chromium (and chromium-based browsers) crash when moved to a workspace on a different monitor. Opening them works as expected on both monitors. Moving to a workspace on the same monitor works as expected. Moving to a different monitor with a dispatcher has the same effect (crash). This will also happen when you open another window that’s part of the same instance on the same screen and then drag it. However, if you open a second window directly on the second screen, it works fine.

Chromium version 141, with –ozone-platform=wayland

hyprctl monitors
Monitor eDP-1 (ID 0):
        [email protected] at 0x0
        description: BOE 0x0BCA
        make: BOE
        model: 0x0BCA
        physical size (mm): 280x190
        serial:
        active workspace: 1 (1)
        special workspace: -98 (special:magic)
        reserved: 0 26 0 0
        scale: 1.00
        transform: 0
        focused: yes
        dpmsStatus: 1
        vrr: false
        solitary: 0
        solitaryBlockedBy: windowed mode,special workspace,missing candidate
        activelyTearing: false
        tearingBlockedBy: next frame is not torn,missing candidate
        directScanoutTo: 0
        directScanoutBlockedBy: user settings,missing candidate
        disabled: false
        currentFormat: XRGB8888
        mirrorOf: none
        availableModes: [email protected] [email protected]

Monitor DP-3 (ID 1):
        [email protected] at -792x-1600
        description: Dell Inc. DELL U3818DW 5KC0375R099L
        make: Dell Inc.
        model: DELL U3818DW
        physical size (mm): 880x370
        serial: 5KC0375R099L
        active workspace: 11 (11)
        special workspace: 0 ()
        reserved: 0 26 0 0
        scale: 1.00
        transform: 0
        focused: no
        dpmsStatus: 1
        vrr: false
        solitary: 0
        solitaryBlockedBy: windowed mode,missing candidate
        activelyTearing: false
        tearingBlockedBy: next frame is not torn,missing candidate
        directScanoutTo: 0
        directScanoutBlockedBy: user settings,missing candidate
        disabled: false
        currentFormat: XRGB8888
        mirrorOf: none
        availableModes: [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected]
Chromium backtrace
Thread 1 "chromium" received signal SIGTRAP, Trace/breakpoint trap.
0x0000555557a049d0 in ui::WaylandEventWatcher::WlDisplayCheckForErrors() ()
(gdb) bt
#0  0x0000555557a049d0 in ui::WaylandEventWatcher::WlDisplayCheckForErrors() ()
#1  0x0000555557a050be in ui::(anonymous namespace)::WatchSourceDispatch(_GSource*, int (*)(void*), void*) [clone .a82fcc63155f75de0613745cb5c3e93e] [clone .cfi] ()
#2  0x00007ffff7e6cf4d in g_main_dispatch (context=0xf18000f01a0) at ../glib/glib/gmain.c:3565
#3  0x00007ffff7e6e617 in g_main_context_dispatch_unlocked (context=0xf18000f01a0) at ../glib/glib/gmain.c:4425
#4  g_main_context_iterate_unlocked (context=context@entry=0xf18000f01a0, block=block@entry=0, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4490
#5  0x00007ffff7e6e825 in g_main_context_iteration (context=0xf18000f01a0, may_block=0) at ../glib/glib/gmain.c:4556
#6  0x000055555d8166e8 in base::MessagePumpGlib::Run(base::MessagePump::Delegate*) ()
#7  0x000055555d799fc2 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) ()
#8  0x000055555d74fa26 in base::RunLoop::Run(base::Location const&) ()
#9  0x0000555559e23639 in content::BrowserMainLoop::RunMainMessageLoop() ()
#10 0x0000555559e25693 in content::BrowserMainRunnerImpl::Run() ()
#11 0x0000555559e1f54d in content::BrowserMain(content::MainFunctionParams) ()
#12 0x000055555c1bc10a in content::ContentMainRunnerImpl::Run() ()
#13 0x000055555c1b9200 in content::ContentMain(content::ContentMainParams) ()
#14 0x0000555556f9faab in ChromeMain ()
#15 0x00007ffff6227675 in __libc_start_call_main (main=main@entry=0x555556f9f600 <main>, argc=argc@entry=7, argv=argv@entry=0x7fffffffcb78) at ../sysdeps/nptl/libc_start_call_main.h:58
#16 0x00007ffff6227729 in __libc_start_main_impl (main=0x555556f9f600 <main>, argc=7, argv=0x7fffffffcb78, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffcb68) at ../csu/libc-start.c:360
#17 0x00005555569cb025 in _start ()

Video:

Not 100% sure if this is hyprland’s fault. The backtrace suggests a Wayland error, so maybe. My last system update was 2 weeks ago, and I don’t recall this happening. The next one was today. Arch Linux, of course.

It is a hyprland bug, fixed in git. For now, you can work around this by adding a launch parameter, see Chrome with color management stuff enabled crashes when moved between monitors while trying to destroy a `wp_image_description_v1` · hyprwm/Hyprland · Discussion #11843 · GitHub

1 Like

--disable-features=WaylandWpColorManagerV1 does the trick, thanks <3

1 Like