Skip to content

Quickshell has crashed while working on a new plugin #1136

Description

@dutchbase

What caused the crash

I was working on a new plugin when Quickshell crashed, I got a notification which told me to file this issue.
This is what Claude analised:

Crash report: quickshell SIGSEGV, 2026-09-13 20:33:17

What crashed and what it was doing

/usr/bin/quickshell -n -p /usr/share/omarchy/shell (your Omarchy shell) segfaulted once. The crashing thread was in the middle of live-reloading QML — the stack shows QQmlIncubationController::incubateFor → QQmlIncubatorPrivate::incubate → QQmlObjectCreator::finalize, i.e. Quickshell was in the process of instantiating/finalizing a freshly-reloaded QML component when it died.

Timeline correlation (the key evidence)

  • 20:32:58.95 — ~/.config/omarchy/plugins/dutchbase.webapps/Panel.qml was touched (your own custom local plugin, not part of Omarchy — confirmed by git log: last real edit was your dbb9140 fix: always render a web glyph... commit).
  • 20:33:13–15 — the shell log shows it reloading the whole plugin tree (many "IpcHandler ... registered but will not be used" warnings for omarchy.agents, omarchy.indicators, dutchbase.webapps, etc.) — this is Quickshell's config hot-reload in progress.
  • 20:33:17 — crash, ~18s after the Panel.qml file change, right in the middle of that reload's object incubation.
  • No Omarchy shell files (/usr/share/omarchy/shell) changed around this time — only your own plugin did.
  • 20:34:22 onward — a fresh quickshell instance started, reloaded dutchbase.webapps again (this time cleanly), and has been running fine since.

Mechanism — proven vs. inferred

  • Proven: the crash occurred during QML incubation/finalize, seconds after your custom Panel.qml was modified on disk, while Quickshell's hot-reload was actively re-registering handlers for that same plugin.
  • Proven: right before the fault, quickshell's own code called __dynamic_cast (RTTI cast) and then explicitly called raise() (the signal was delivered via SI_TKILL, i.e. self-inflicted, not a genuine wild-pointer fault) — this is consistent with an internal assertion/fatal-path in Quickshell's C++ QML-type glue, not a random memory corruption.
  • Inferred (not provable without Quickshell debug symbols, which aren't published via debuginfod): a dynamic_cast on a QML object that was mid-destruction/re-creation during the hot-reload of your plugin failed or hit a stale pointer, and Quickshell's own crash path turned that into a deliberate SIGSEGV.
  • Quickshell binary frames are unsymbolized (no debuginfo available for it); Qt/glibc frames symbolized cleanly via debuginfod.

Data loss

None. This is a shell (bar/panel) process, not a data-holding app — it auto-restarted seconds later and your session was otherwise unaffected. No core files or temp artifacts were left behind (I dumped the core to a private tmpfile and deleted it after inspection).

Recurrence / is this an Omarchy bug

This is not an Omarchy bug — Omarchy's own shell config was untouched at the time. The trigger was editing/saving your own custom dutchbase.webapps plugin while quickshell had it loaded; the crash itself happened one directory-watch reload cycle later. It's most likely a Quickshell hot-reload edge case (destroying/recreating QML objects for a changed local plugin can race with an in-flight incubation) rather than a defect in your Panel.qml. It's a single occurrence so far (coredumpctl list shows nothing else), so it may simply be an occasional hot-reload race rather than something that reproduces every edit.

This is the plugin I was working on: https://github.com/dutchbase/omarchy-webapps

Report file

report.txt

Configuration

No response

Backtrace

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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