Problem
On Linux, an IntelliJ-based IDE freezes (hangs) and does not recover. The process must be killed.
The freeze happens at startup, right after the main window appears. The freeze also happens when a tool window with a Compose panel opens for the first time, for example AI Assistant (AI Chat) or Junie. A slow IDE startup and distorted fonts are other symptoms of the same problem.
The problem was reported in PyCharm, WebStorm and Android Studio, versions 2026.1 and 2026.2. The reported systems are Arch Linux with Cinnamon (X11) and Ubuntu with GNOME (Wayland). In one report the freeze started on the day of a system update.
The last lines about the UI in idea.log, or the last lines in the terminal that started the IDE, are:
[SKIKO] warn: Fallback to next API
org.jetbrains.skiko.RenderException: Cannot create OpenGL context
These two lines also appear in sessions that do not freeze. The lines only show that a Compose panel started to open.
A thread dump taken during the freeze shows the UI thread in the native font manager:
"AWT-EventQueue-0" ... RUNNABLE
at org.jetbrains.skia.FontMgrKt._nDefault(Native Method)
at org.jetbrains.skia.FontMgr.<clinit>(FontMgr.kt:13)
at androidx.compose.ui.text.platform.FontCache.<init>(PlatformFont.skiko.kt:296)
...
at androidx.compose.ui.awt.ComposePanel.addNotify(ComposePanel.desktop.kt:361)
at org.jetbrains.jewel.bridge.JewelComposePanelWrapper.addNotify
Cause
The first Compose panel loads the system font list through the fontconfig library on the UI thread. When the fontconfig cache is stale or broken, fontconfig scans and parses every font file again before the call returns. The UI thread cannot draw anything until then.
The font manager starts before the renderer is selected. For this reason the VM option -Dskiko.renderApi=SOFTWARE does not remove the freeze.
The Toolbox App has the same problem with the same cause: Toolbox App: Toolbox doesn't show up on Linux after clicking on the tray icon.
Resolution
-
Close the IDE. If the IDE does not respond, kill the process.
-
Make sure that
fc-cacheis the tool shipped with the OS:which -a fc-cacheThe expected first line is
/usr/bin/fc-cache. Another environment earlier inPATHcan provide a differentfc-cache. Anaconda is a known case: thefc-cachefrom Anaconda does not rebuild the system cache. In that case use the full path/usr/bin/fc-cachein the next step. -
Rebuild the fontconfig cache from scratch:
rm -rf ~/.cache/fontconfig fc-cache -f -r -vIn the output, look for lines that contain "error" or "broken", and for a directory that takes many seconds to scan.
-
Start the IDE.
If the IDE still freezes
-
Measure fontconfig:
time fc-match sans-serif time fc-list | wc -lA run time of several seconds means that fontconfig is still slow.
-
Look for large or custom font directories under
~/.local/share/fontsand~/.fonts. Move such a directory aside temporarily. Start the IDE again. -
Collect the IDE log directory. The directory is readable while the IDE is frozen. The IDE writes thread dumps of the freeze to the
threadDumps-freeze-*folders in that directory. -
Send the zipped log directory and the output of the commands from step 1 to JetBrains support.
Comments
0 comments
Please sign in to leave a comment.