Hi, I just updated my flake-enabled NixOS installation, and the updated idea-community package is broken on my system. Through some experimentation, I puzzingly ended up getting the new idea-community version working by running nix-shell with the same version my flake.lock specifies. From my flake.lock:
"nixpkgs": {
"locked": {
"lastModified": 1758690382,
"narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e643668fd71b949c53f8626614b21ff71a07379d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
Running
nix-shell -p idea-community
gives me the broken version.
Running
nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/e643668fd71b949c53f8626614b21ff71a07379d.tar.gz -p jetbrains.idea-community
Gives me a version that works fine.
Both report as 2025.1.1.1.
Did I misunderstand the revisions in flake.lock?
The error I’m getting in idea-community is:
java.lang.NullPointerException: Cannot read field "hovered" because "state" is null
... long stacktrace ...
This happens when I try to do an action in idea-community that will open another window.
bme
October 13, 2025, 12:32pm
2
nix-shell is pointing at some completely different version. Mostly likely some old channel. If you do an ls -la $(which idea) you’ll seem them not line up. What does your builtins.nixPath evaluate to? That’s what is driving the nix-shell version.
The really easy way to tell this is the case is that if they were looking at the same version of nixpkgs you’d be doing nix-shell -p jetbrains.idea-community.
nix-repl> :p builtins.nixPath
[
{
path = "flake:nixpkgs";
prefix = "nixpkgs";
}
{
path = "/nix/var/nix/profiles/per-user/root/channels";
prefix = "";
}
{
path = "/nix/var/nix/profiles/per-user/root/channels";
prefix = "";
}
]
The very interesting part is if I add this to the flake.nix used by my system:
# inputs:
nixpkgs-intellij.url = "github:nixos/nixpkgs/e643668fd71b949c53f8626614b21ff71a07379d";
# Import
pkgs-intellij = import inputs.nixpkgs-intellij { inherit system; };
# And add to specialArgs:
inherit pkgs-intellij;
# And finally in my configuration.nix
pkgs-intellij.jetbrains.idea-community
The above results in the behavior of idea I have with nix-shell.
Expanding the snippet from my flake.lock, which now contains the intellij input:
"nixpkgs": {
"locked": {
"lastModified": 1758690382,
"narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e643668fd71b949c53f8626614b21ff71a07379d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
...
"nixpkgs-intellij": {
"locked": {
"lastModified": 1758690382,
"narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e643668fd71b949c53f8626614b21ff71a07379d",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e643668fd71b949c53f8626614b21ff71a07379d",
"type": "github"
}
},
This is how I currently fix the issue.
Are you using the Wayland backend? If so, you’ve hit this:
It says CLion, but it’s a bug in the JB runtime; I’m hitting it with Goland.
There’s no fix yet other than to remove -Dawt.toolkit.name=WLToolkit
Yep, I’m using the wayland backend, and that’s what I’m seeing. Super weird that I have it working by installing idea from a separate input though (see my above post). Any suggestions on how I can troubleshoot that?
My initial thought is that I somehow am not installing the same version of idea between the nixpkgs and nixpkgs-intellij inputs, even though the lock file points to the same version of nixpkgs.
I found something interesting. Between my two input flakes with the same nixpkgs revision, idea reports as follows (from the Help -> about dialog)
Working version:
IntelliJ IDEA 2025.1.1.1 (Community Edition)
Build #IC-251.25410.129, built on January 1, 1980
Runtime version: 21.0.7+9-nixos amd64 (JCEF 122.1.9)
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Toolkit: sun.awt.wl.WLToolkit
Linux 6.12.51
NixOS 25.11 (Xantusia); glibc: 2.4
Kotlin plugin: K2 mode
GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation
Memory: 3486M
Cores: 16
Registry:
ide.experimental.ui=true
Non-Bundled Plugins:
com.intellij.marketplace (251.25410.159)
manjaro.mpb (1.9)
com.markskelton.one-dark-theme (5.14.1)
Key Promoter X (2024.2.2)
izhangzhihao.rainbow.brackets.lite (1.3.0)
Kotlin: 251.25410.129-IJ
Current Desktop: Hyprland
Broken version (running X11 backend, because I can’t open the about dialog with the wayland backend):
IntelliJ IDEA 2025.1.1.1 (Community Edition)
Build #IC-251.25410.129, built on January 1, 1980
Runtime version: 21.0.8+9-nixos amd64 (JCEF 137.0.17)
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Toolkit: sun.awt.X11.XToolkit
Linux 6.12.51
NixOS 25.11 (Xantusia); glibc: 2.4
Kotlin plugin: K2 mode
GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation
Memory: 3486M
Cores: 16
Registry:
ide.experimental.ui=true
Non-Bundled Plugins:
com.intellij.marketplace (251.25410.159)
manjaro.mpb (1.9)
com.markskelton.one-dark-theme (5.14.1)
Key Promoter X (2024.2.2)
izhangzhihao.rainbow.brackets.lite (1.3.0)
Kotlin: 251.25410.129-IJ
Current Desktop: Hyprland
The diff is the JB runtime version.
Given the same nixpkgs version, surely that should be the same?