Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
I am on Ubuntu 24.04 desktop, running Cursor AppImage
When I do the “update” (through the GUI menu → Restart to update), i get the attached error after it comes back up
Steps to Reproduce
Using Cursor, it shows (bottom left) “Update”
When I click on that. Then exit Cursor. Wait some time, then run Cursor
See the error message (attached screenshot)
Expected Behavior
Cursor should be upgraded.
Screenshots / Screen Recordings
Operating System
Linux
Version Information
Version: 3.6.21
VS Code Extension API: 1.105.1
Commit: e7a7e93f4d75f8272503ecf33cedbaae10114a10
Date: 2026-05-28T21:45:36.072Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
xterm.js: 6.1.0-beta.220
OS: Linux x64 6.17.0-1024-oem
Additional Information
So I asked Cursor to diagnose the root cause (using Auto mode):
traced this through your logs and system journal. The update is not failing on download — it fails at a signature check afterward.
What’s happening
You’re on the AppImage install at ~/.local/bin/Cursor.AppImage (currently 3.6.21, dated May 30). Cursor detects 3.7.12, quits, and runs its built-in updater (appimageupdatetool + zsync).
Each attempt today follows the same pattern in journalctl:
zsync downloads ~299 MB successfully
zsync2: checksum matches OK
Validation error: AppImage no longer comes with signature
Restoring original file
So the new version is downloaded, then rejected and rolled back. That’s why you still see 3.6.21 and the “couldn’t finish installing” toast after every try.
Root cause
Your current AppImage is GPG-signed (confirmed via --appimage-signature). The 3.7.12 build appears to be unsigned. AppImageUpdate treats going from signed → unsigned as a security failure and restores the old file.
This is a Cursor packaging/updater mismatch, not a network, disk space, or permissions issue on your machine.
Workaround (manual update)
Since zsync already proves the download is valid, you can replace the file manually:
Quit Cursor completely (all windows).
Back up the current file:
cp ~/.local/bin/Cursor.AppImage ~/.local/bin/Cursor.AppImage.bak
Download 3.7.12 directly:
curl -L -o ~/.local/bin/Cursor.AppImage.new
“https://downloads.cursor.com/production/b887a26c4f70bd8136bfffeda812b24194ec9ce0/linux/x64/Cursor-3.7.12-x86_64.AppImage”
chmod +x ~/.local/bin/Cursor.AppImage.new
mv ~/.local/bin/Cursor.AppImage.new ~/.local/bin/Cursor.AppImage
Launch Cursor again from your desktop entry (~/.local/share/applications/cursor.desktop).
After that, in-app updates may work again for future releases if they stay consistently unsigned (no signed→unsigned transition).
What to report to Cursor
Worth filing as a bug: in-app AppImage update fails when upgrading from a signed build to an unsigned one. The updater should either keep signing releases or allow the transition when the download checksum is valid.
I can run the manual download/replace for you once you’ve fully quit Cursor — say the word if you want that.
Does this stop you from using Cursor
No - Cursor works, but with this issue
