Skip to content

Quickshell 0.3.0 crash on "Display connected" #796

@mssnyder

Description

@mssnyder

What caused the crash

I let it turn off my monitor overnight and after I logged in I came back to this.

Claude had this to say about the log if it helps at all (note the new display is my only display, it just woke back up):

Trigger: A new screen was connected — the log tail shows Display connected: DP-3 (line 284). This triggered QGuiApplication::screenAdded (frame #52).

Crash path:

Screen added → QuickshellTracked::updateScreens() (#50)
→ QML binding update chain → Variants::setModel() / Variants::updateVariants() (#39-40)
→ Creates new QML component instances for the new screen (#38)
→ During component finalization, a signal fires (#27-28)
→ QML JS code calls .filter() on an array of QObjects (#12)
→ Inside the filter callback, it tries to access an element from a sequence (#3-4)
→ QObjectWrapper::wrap() is called on a dangling/null QObject pointer (#1)
→ SIGSEGV
Root cause: This is a use-after-free bug. When screens change, the DMS shell's QML code filters a list of QObjects (probably monitors or screen-related items), but one of those objects has already been destroyed. The pointer is stale, so wrapping it for JS crashes.

Report file

report.txt

Log file

log.qslog.log

Configuration

Using dms 1.4.6+date=2026-04-29_eb5afcd

Backtrace

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcrash

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions