Main UI doesn't render [Linux/Wayland]

No matter which render back end is used, the main window will display blank, leaving the Anki client completely unusable. I’ve tried using the most recent version of the Linux installer from the Anki website, but I’m still getting this issue.

(The debug log was taken with OpenGL, but they were all exactly the same.)

Starting Anki 25.07.5... 2025-09-10 07:56:26,039:INFO:aqt.mediasrv: Serving on http://127.0.0.1:34611 Discord Rich Presence connected successfully ffmpeg version n7.1.1 Copyright (c) 2000-2025 the FFmpeg developers built with gcc 15.1.1 (GCC) 20250425 configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-frei0r --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libdvdnav --enable-libdvdread --enable-libfreetype --enable-libfribidi --enable-libglslang--enable-libgsm --enable-libharfbuzz --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librsvg --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-vapoursynth --enable-version3 --enable-vulkan libavutil      59. 39.100 / 59. 39.100 libavcodec     61. 19.101 / 61. 19.101 libavformat    61.  7.100 / 61.  7.100 libavdevice    61.  3.100 / 61.  3.100 libavfilter    10.  4.100 / 10.  4.100 libswscale      8.  3.100 /  8.  3.100 libswresample   5.  3.100 /  5.  3.100 libpostproc    58.  3.100 / 58.  3.100 ffprobe version n7.1.1 Copyright (c) 2007-2025 the FFmpeg developers built with gcc 15.1.1 (GCC) 20250425 configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-frei0r --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libdvdnav --enable-libdvdread --enable-libfreetype --enable-libfribidi --enable-libglslang--enable-libgsm --enable-libharfbuzz --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librsvg --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-vapoursynth --enable-version3 --enable-vulkan libavutil      59. 39.100 / 59. 39.100 libavcodec     61. 19.101 / 61. 19.101 libavformat    61.  7.100 / 61.  7.100 libavdevice    61.  3.100 / 61.  3.100 libavfilter    10.  4.100 / 10.  4.100 libswscale      8.  3.100 /  8.  3.100 libswresample   5.  3.100 /  5.  3.100 libpostproc    58.  3.100 / 58.  3.100 Starting main loop... deckDueTree() is deprecated; use decks.deck_tree() for a tree without counts, or sched.deck_due_tree() conf key heatmap should be fetched with col.get_config(), and saved with col.set_config() conf key heatmap should be fetched with col.get_config(), and saved with col.set_config() conf key heatmap should be fetched with col.get_config(), and saved with col.set_config() deckDueTree() is deprecated; use decks.deck_tree() for a tree without counts, or sched.deck_due_tree() Window should have been closed: <aqt.progress.ProgressDialog object at 0x7efc782c8a50> 2025-09-10 07:56:33,494:WARNING:waitress: unhandled close event do_window_cleanup error ignored: wrapped C/C++ object of type QTimer has been deleted

I have a very similar issue, so commenting here instead of making a new thread.

Arch 6.16.5, using hyprland 0.50.1 and opengl drivers. (Vulkan drivers cause a crash at startup; software drivers behave the same as opengl. Vulkan drivers never worked for me, IIRC.)

Anki 25.09rc1 (5c4d2e87) 
Python 3.12.11 Qt 6.9.1 PyQt 6.9.1
Platform: Linux-6.16.5-arch1-1-x86_64-with-glibc2.42

I am running Anki built against the git tags; I have tested 25.08b5, 25.09rc1 and 25.09, and the builds are built in a virtual environment and installed using uv pip install. I tried changing versions of pyqt6 and pyqt6-webengine and associated packages as I remember these dependencies causing issues before, but this did not help.

I can confirm that prior to today, that all the referenced tags worked fine. However, as of today, using opengl drivers, I have a similar (but slightly different) issue to the OP: the main UI works, but the deck options UI specifically does not - it presents a blank screen, just as theirs does for all screens. I am assuming that whatever has borked their whole UI is the culprit for my issue as well.

I notice in my pacman.log that there may have been some relevant breaking updates, like mesa, qt5-base, and vulkan-radeon, over the past two days.

Unlike the OP, I get no errors reported whatsoever in my terminal output:

Starting Anki 25.09rc1...
2025-09-10 10:54:45,192:INFO:aqt.mediasrv: Serving on http://127.0.0.1:36141
Starting main loop...
2025-09-10 10:54:45,489:DEBUG:aqt.mediasrv: GET /_anki/legacyPageData
2025-09-10 10:54:45,490:DEBUG:aqt.mediasrv: GET /_anki/legacyPageData
2025-09-10 10:54:45,543:DEBUG:aqt.mediasrv: GET /_anki/legacyPageData
2025-09-10 10:54:45,544:DEBUG:aqt.mediasrv: GET /_anki/legacyPageData
2025-09-10 10:54:45,555:DEBUG:aqt.mediasrv: GET /_anki/css/webview.css
2025-09-10 10:54:45,555:DEBUG:aqt.mediasrv: GET /_anki/css/toolbar.css
2025-09-10 10:54:45,568:DEBUG:aqt.mediasrv: GET /_anki/js/webview.js
2025-09-10 10:54:45,568:DEBUG:aqt.mediasrv: GET /_anki/js/vendor/jquery.min.js
2025-09-10 10:54:45,569:DEBUG:aqt.mediasrv: GET /_anki/js/toolbar.js
2025-09-10 10:54:45,569:DEBUG:aqt.mediasrv: GET /_anki/imgs/refresh.svg
2025-09-10 10:54:45,573:DEBUG:aqt.mediasrv: GET /_anki/css/webview.css
2025-09-10 10:54:45,574:DEBUG:aqt.mediasrv: GET /_anki/css/toolbar-bottom.css
2025-09-10 10:54:45,575:DEBUG:aqt.mediasrv: GET /_anki/css/webview.css
2025-09-10 10:54:45,577:DEBUG:aqt.mediasrv: GET /_anki/css/deckbrowser.css
2025-09-10 10:54:45,577:DEBUG:aqt.mediasrv: GET /_anki/js/vendor/jquery.min.js
2025-09-10 10:54:45,578:DEBUG:aqt.mediasrv: GET /_anki/js/webview.js
2025-09-10 10:54:45,579:DEBUG:aqt.mediasrv: GET /_anki/js/vendor/jquery-ui.min.js
2025-09-10 10:54:45,579:DEBUG:aqt.mediasrv: GET /_anki/js/deckbrowser.js
2025-09-10 10:54:45,580:DEBUG:aqt.mediasrv: GET /_anki/imgs/gears.svg
2025-09-10 10:54:45,585:DEBUG:aqt.mediasrv: GET /_anki/css/webview.css
2025-09-10 10:54:45,585:DEBUG:aqt.mediasrv: GET /_anki/css/toolbar.css
2025-09-10 10:54:45,587:DEBUG:aqt.mediasrv: GET /_anki/js/webview.js
2025-09-10 10:54:45,587:DEBUG:aqt.mediasrv: GET /_anki/css/toolbar-bottom.css
2025-09-10 10:54:45,587:DEBUG:aqt.mediasrv: GET /_anki/js/vendor/jquery.min.js
Qt debug: Compositor returned null texture
2025-09-10 10:54:47,521:DEBUG:aqt.mediasrv: GET /congrats
2025-09-10 10:54:47,521:DEBUG:aqt.mediasrv: GET /_anki/legacyPageData
2025-09-10 10:54:47,526:DEBUG:aqt.mediasrv: GET /_app/immutable/entry/start.DiObj7si.mjs
2025-09-10 10:54:47,526:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/WWMxemky.mjs
2025-09-10 10:54:47,527:DEBUG:aqt.mediasrv: GET /_anki/css/webview.css
2025-09-10 10:54:47,528:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/CAm1qXYJ.mjs
2025-09-10 10:54:47,528:DEBUG:aqt.mediasrv: GET /_anki/css/toolbar.css
2025-09-10 10:54:47,529:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/D0Kcqh4a.mjs
2025-09-10 10:54:47,532:DEBUG:aqt.mediasrv: GET /_anki/css/toolbar-bottom.css
2025-09-10 10:54:47,533:DEBUG:aqt.mediasrv: GET /_app/immutable/entry/app.C6VnSL2z.mjs
2025-09-10 10:54:47,533:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BbkoyQuY.mjs
2025-09-10 10:54:47,534:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/8hkm7YIM.mjs
2025-09-10 10:54:47,534:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/Dm-VOW7A.mjs
2025-09-10 10:54:47,535:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/jkNgFhw5.mjs
2025-09-10 10:54:47,538:DEBUG:aqt.mediasrv: GET /_anki/js/webview.js
2025-09-10 10:54:47,538:DEBUG:aqt.mediasrv: GET /_anki/js/vendor/jquery.min.js
2025-09-10 10:54:47,556:DEBUG:aqt.mediasrv: GET /_app/immutable/nodes/0.DHbGSFfX.mjs
2025-09-10 10:54:47,557:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/CtwPNh8B.mjs
2025-09-10 10:54:47,558:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/_d1bhYXs.mjs
2025-09-10 10:54:47,560:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BfDh-mSI.mjs
2025-09-10 10:54:47,561:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/0.CpI1RXib.css
2025-09-10 10:54:47,561:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/Dbye-yJ_.mjs
2025-09-10 10:54:47,561:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/-ESH3Vzs.mjs
2025-09-10 10:54:47,562:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/Col.CNShyAXW.css
2025-09-10 10:54:47,564:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/Container.CqNCKFWN.css
2025-09-10 10:54:47,564:DEBUG:aqt.mediasrv: GET /_app/immutable/nodes/1.CcB9Eb0p.mjs
2025-09-10 10:54:47,565:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/5.BwNlooWT.css
2025-09-10 10:54:47,567:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BsRPjoyK.mjs
2025-09-10 10:54:47,571:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BmZO8Du4.mjs
2025-09-10 10:54:47,571:DEBUG:aqt.mediasrv: GET /_app/immutable/nodes/5.CwVGfRCG.mjs
2025-09-10 10:54:47,572:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/Ci-SqDLU.mjs
2025-09-10 10:54:47,573:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/TYY_FXzE.mjs
2025-09-10 10:54:47,573:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BAW9mIY7.mjs
2025-09-10 10:54:47,574:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BhuiCdlm.mjs
2025-09-10 10:54:47,590:DEBUG:aqt.mediasrv: POST /_anki/i18nResources
2025-09-10 10:54:47,606:DEBUG:aqt.mediasrv: POST /_anki/congratsInfo
2025-09-10 10:54:48,849:DEBUG:aqt.mediasrv: GET /deck-options/1747694889741
2025-09-10 10:54:48,891:DEBUG:aqt.mediasrv: GET /_app/immutable/entry/start.DiObj7si.mjs
2025-09-10 10:54:48,892:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/WWMxemky.mjs
2025-09-10 10:54:48,893:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/CAm1qXYJ.mjs
2025-09-10 10:54:48,895:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/D0Kcqh4a.mjs
2025-09-10 10:54:48,897:DEBUG:aqt.mediasrv: GET /_app/immutable/entry/app.C6VnSL2z.mjs
2025-09-10 10:54:48,897:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BbkoyQuY.mjs
2025-09-10 10:54:48,897:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/8hkm7YIM.mjs
2025-09-10 10:54:48,898:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/jkNgFhw5.mjs
2025-09-10 10:54:48,898:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/Dm-VOW7A.mjs
2025-09-10 10:54:48,924:DEBUG:aqt.mediasrv: GET /_app/immutable/nodes/0.DHbGSFfX.mjs
2025-09-10 10:54:48,924:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/CtwPNh8B.mjs
2025-09-10 10:54:48,925:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/_d1bhYXs.mjs
2025-09-10 10:54:48,926:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BfDh-mSI.mjs
2025-09-10 10:54:48,926:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/-ESH3Vzs.mjs
2025-09-10 10:54:48,927:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/Dbye-yJ_.mjs
2025-09-10 10:54:48,930:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/0.CpI1RXib.css
2025-09-10 10:54:48,930:DEBUG:aqt.mediasrv: GET /_app/immutable/nodes/1.CcB9Eb0p.mjs
2025-09-10 10:54:48,938:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BsRPjoyK.mjs
2025-09-10 10:54:48,939:DEBUG:aqt.mediasrv: GET /_app/immutable/nodes/6.D9UEQKt_.mjs
2025-09-10 10:54:48,940:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/D2nezqbu.mjs
2025-09-10 10:54:48,940:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/HSm5mexL.mjs
2025-09-10 10:54:48,940:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/events.DMhOJ8S8.css
2025-09-10 10:54:48,941:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/Badge.BL6SSmuK.css
2025-09-10 10:54:48,942:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/WithFloating.B0IlMuwK.css
2025-09-10 10:54:48,945:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/theme.Bg_qV4G0.css
2025-09-10 10:54:48,945:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/Container.CqNCKFWN.css
2025-09-10 10:54:48,945:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/HelpModal.6AtxmQWv.css
2025-09-10 10:54:48,946:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/Select.CI21gnLB.css
2025-09-10 10:54:48,947:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/TitledContainer.CsQePOUx.css
2025-09-10 10:54:48,947:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/Col.CNShyAXW.css
2025-09-10 10:54:48,951:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/EnumSelectorRow.C-2IcefC.css
2025-09-10 10:54:48,952:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/LabelButton.CtEEVAg4.css
2025-09-10 10:54:48,952:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/IconButton.JaRB2fgK.css
2025-09-10 10:54:48,952:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/TableData.B8fyvZ0y.css
2025-09-10 10:54:48,952:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/HoverColumns.CLH-4mS1.css
2025-09-10 10:54:48,953:DEBUG:aqt.mediasrv: GET /_app/immutable/assets/6.Chs86YsZ.css
2025-09-10 10:54:48,957:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/DB8w6JNV.mjs
2025-09-10 10:54:48,957:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BmZO8Du4.mjs
2025-09-10 10:54:48,958:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/DjEbBSaz.mjs
2025-09-10 10:54:48,958:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/De7yzKa5.mjs
2025-09-10 10:54:48,959:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/B7NlXUSi.mjs
2025-09-10 10:54:48,959:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/B53HXNOO.mjs
2025-09-10 10:54:48,964:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/DFv3mxnp.mjs
2025-09-10 10:54:48,964:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/B0hvKUPm.mjs
2025-09-10 10:54:48,964:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/C-_qSJkO.mjs
2025-09-10 10:54:48,964:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BhuiCdlm.mjs
2025-09-10 10:54:48,965:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/C6BL1kN8.mjs
2025-09-10 10:54:48,966:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/CcaWrs5J.mjs
2025-09-10 10:54:48,969:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/Cfg-5ksk.mjs
2025-09-10 10:54:48,969:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/Ci-SqDLU.mjs
2025-09-10 10:54:48,969:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BxV294_i.mjs
2025-09-10 10:54:48,970:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/dPqBMmTD.mjs
2025-09-10 10:54:48,970:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/D7udBTdc.mjs
2025-09-10 10:54:48,971:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/je8rPHg_.mjs
2025-09-10 10:54:48,974:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BCxgvsZQ.mjs
2025-09-10 10:54:48,975:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/CkFh3nQa.mjs
2025-09-10 10:54:48,975:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/_2ytY-Gb.mjs
2025-09-10 10:54:48,976:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BW3LlYa9.mjs
2025-09-10 10:54:48,976:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/DPJ1P7fv.mjs
2025-09-10 10:54:48,977:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/0H5c_1aR.mjs
2025-09-10 10:54:48,980:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BAW9mIY7.mjs
2025-09-10 10:54:48,981:DEBUG:aqt.mediasrv: GET /_app/immutable/chunks/BNZ7FSct.mjs
2025-09-10 10:54:48,981:DEBUG:aqt.mediasrv: POST /_anki/i18nResources
2025-09-10 10:54:48,992:DEBUG:aqt.mediasrv: POST /_anki/getDeckConfigsForUpdate
2025-09-10 10:54:53,822:WARNING:waitress: unhandled close event  

If there’s some other relevant logs, please tell me how to generate/find them.

I can try downgrading packages at random and hope I get lucky, but that’s not a long-term fix.

1 Like

Have you tried the workarounds that had worked in the past?

1 Like

Running Anki with ``export QTWEBENGINE_DISABLE_SANDBOX=1`` fixed the issue and it works now.

3 Likes

This also works for me - I had seen this page before but overlooked it this time. Thank you.

1 Like

Had a similar issue this morning after upgrading my system (CachyOS), and tracked down the culprit to be freetype2.14.0-1 and lib32-freetype2.14.0-1. After downgrading to freetype-2.13.3 everything got back to normal.

2 Likes

The issue has been hotfixed and is available in the official arch repo => extra/freetype2 2.14.0-2

2 Likes

Updated my system to freetype2-2.14.0-2 and it now works without the env variable mentioned earlier. Seems entirely fixed now.

2 Likes