cava runs fine in any terminal — but inside WezTerm installed via Flatpak it crashes with:
Segmentation fault (core dumped)
If that's what brought you here, the quick fix is right below. The full diagnosis comes after, for those who want to understand why.
⚡ TL;DR — Fix in two commands
flatpak update org.wezfurlong.wezterm
flatpak override --user org.wezfurlong.wezterm --device=all
Close all WezTerm windows and reopen it. cava should work normally now.
⚠️ Security tradeoff:
--device=allgrants WezTerm access to all system devices — including camera and microphone, not just audio. If that's a concern in your environment, the safer alternative is to use the native WezTerm build, which doesn't have this restriction by design.
🔍 What's happening under the hood
Why does WezTerm Flatpak cause the crash?
Flatpak runs WezTerm inside a sandbox that isolates the process from the host system. cava tries to enumerate available audio devices (ALSA/PipeWire) right at startup — without access to those device nodes, it receives an invalid pointer and segfaults.
That's why other terminals (GNOME Terminal, Kitty, etc.) don't have this problem: they have unrestricted access to the system. --device=all fixes exactly that: it grants access to the audio device nodes cava needs to initialize.
As a secondary hypothesis (not directly confirmed), the sandbox may also modify environment variables that cava uses to detect the audio backend.
Confirming with GDB
Want to see the full backtrace? Expand here.
Inside WezTerm, run:
gdb cava
When prompted, accept debuginfod with y. Then:
(gdb) run
When the crash occurs:
(gdb) bt
The output should look something like this:
Program received signal SIGSEGV, Segmentation fault.
__strncmp_avx2 () at ../sysdeps/x86_64/multiarch/strcmp-avx2.S:283
283 VMOVU (%rdi), %ymm0
(gdb) bt
#0 __strncmp_avx2 () at ../sysdeps/x86_64/multiarch/strcmp-avx2.S:283
#1 0x0000555555559cfe in main (argc=, argv=)
at /usr/src/debug/cava-0.10.2-7.fc44.x86_64/cava.c:297
The crash happens inside __strncmp_avx2 — a glibc string comparison function — called by cava at line 297. The pointer passed in is null or points to invalid memory, which indicates that cava failed to retrieve valid information about the audio devices and segfaulted when trying to use it.
✅ Step-by-step fix
1. Update your packages
sudo dnf upgrade cava # Fedora
flatpak update org.wezfurlong.wezterm
2. Grant device access
flatpak override --user org.wezfurlong.wezterm --device=all
3. Fully restart WezTerm
Close all windows and reopen. Ctrl+Shift+R is not enough — Flatpak permission changes only take effect after a full restart.
4. Test it
cava
🎉 Working? You're done. If not, see the alternatives below.
🖱️ Alternative: Flatseal
Prefer a GUI for managing Flatpak permissions?
flatpak install flathub com.github.tchx84.Flatseal
Open Flatseal → select WezTerm → go to the Device section → enable All devices → restart WezTerm. The result is identical to the command above.
⚠️ If it still doesn't work
Audio service not running: check if PipeWire is active:
systemctl --user status pipewire
# If inactive:
systemctl --user start pipewire
Rendering issue: add this to your ~/.wezterm.lua:
config.front_end = "Software"
⚠️ This option may cause slowness or even prevent WezTerm from opening on some systems. Use with caution.
🔄 Last resort: native WezTerm
If nothing works — or if the --device=all tradeoff isn't acceptable — the native build solves it definitively: no sandbox, no device restrictions.
The official documentation covers all options: AppImage, .deb/.rpm packages, and building from source.
📌 Summary
| Solution | Complexity | Keeps Flatpak? |
|---|---|---|
flatpak override --device=all |
⭐ Low | ✅ |
| Flatseal (GUI) | ⭐ Low | ✅ |
| Check PipeWire | ⭐⭐ Medium | ✅ |
front_end = "Software" |
⭐⭐ Medium | ✅ |
| Install native build | ⭐⭐ Medium | ❌ |
The root cause is the Flatpak sandbox blocking cava's access to audio device nodes at startup. Releasing that access with --device=all resolves it in almost every case — and you keep all the benefits of Flatpak.
📝 Based on real experience on Fedora 44+ with WezTerm (Flatpak) and cava 0.10.2.


Top comments (0)