After updating to cursor-bin 1.6.23 from the AUR, Cursor immediately crashes on launch. The error consistently shows:
TypeError: Class constructor Fi cannot be invoked without 'new'
at Md (file:///usr/share/cursor/resources/app/out/main.js:37:61482)
at M0.invokeFunction (file:///usr/share/cursor/resources/app/out/main.js:118:954)
at new Tl (file:///usr/share/cursor/resources/app/out/main.js:57:75580)
at M0._createInstance (file:///usr/share/cursor/resources/app/out/main.js:118:2015)
at M0.createInstance (file:///usr/share/cursor/resources/app/out/main.js:118:1445)
at af.openInBrowserWindow (file:///usr/share/cursor/resources/app/out/main.js:61:34292)
at af.doOpenFolderOrWorkspace (file:///usr/share/cursor/resources/app/out/main.js:61:19815)
at af.doOpen (file:///usr/share/cursor/resources/app/out/main.js:61:17669)
at af.open (file:///usr/share/cursor/resources/app/out/main.js:61:12721)
at async fp.startup (file:///usr/share/cursor/resources/app/out/main.js:85:22470)
at async qP.startup (file:///usr/share/cursor/resources/app/out/main.js:122:51812)
This happens both with the packaged launcher and when running directly with the system Electron:
Install/upgrade cursor-bin from AUR (yay -S cursor-bin → version 1.6.23-1).
Run cursor --verbose on Arch Linux with Hyprland (Wayland).
Observe crash.
Expected Behavior
Cursor should start and open a new window as normal.
Operating System
Linux
Current Cursor Version (Menu → About Cursor → Copy)
1.6.23 (from AUR, cursor-bin package)
Additional Information
Downgrading to cursor-bin 1.5.11 fixes the issue; Cursor launches normally.
Portal-related warnings appear (about org.freedesktop.portal.FileChooser), but they do not cause a crash in 1.5.11.
The crash is reproducible with a clean profile (–user-data-dir /tmp/cursor-clean) and both Wayland and X11 flags.
Sample verbose log snippet:
[main 2025-09-16T08:59:39.449Z] TypeError: Class constructor Fi cannot be invoked without 'new'
at Md (file:///usr/share/cursor/resources/app/out/main.js:37:61482)
...
[main 2025-09-16T08:59:39.449Z] Lifecycle#kill()
I am also facing the shame issue on CachyOS. Installed from AUR. With cursor --verbose, it does not show any log on terminal and just ends the program.
# Create backup first, then fix
sudo cp /usr/share/cursor/resources/app/out/main.js /usr/share/cursor/resources/app/out/main.js.backup && \
curl -fsSL https://raw.githubusercontent.com/dev-kraken/cursor-fix/main/main.js | sudo tee /usr/share/cursor/resources/app/out/main.js > /dev/null && \
echo "✅ Cursor fixed with backup created!"
Alternative with wget
# If you prefer wget over curl
wget -qO- https://raw.githubusercontent.com/dev-kraken/cursor-fix/main/main.js | sudo tee /usr/share/cursor/resources/app/out/main.js > /dev/null && echo "✅ Cursor fixed!"
Fix with Verification
# Fix and test that it works
curl -fsSL https://raw.githubusercontent.com/dev-kraken/cursor-fix/main/main.js | sudo tee /usr/share/cursor/resources/app/out/main.js > /dev/null && \
cursor --version && \
echo "✅ Cursor fixed and working!"