Symptoms

You connect over Remote SSH to an Ubuntu 22.04 LTS server, run Cursor 3.13.10, and code indexing/search stops working entirely.

  • Toast (bottom-right): index build failed: miniserde error
  • Output panel log: crepectl: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.39' not found
  • Companion messages: cannot index repository without Git, Not creating an indexing watcher: no queryable index to build
  • Codebase search and @codebase come back empty or do nothing

Cause

crepectl is Cursor's Instant Grep indexer — the binary that builds the code-search index. Starting in Cursor 3.13.10, that binary is compiled against GLIBC 2.39. Ubuntu 22.04 LTS ships GLIBC 2.35. Because the system glibc is older than 2.39, the binary can't load at all and indexing fails outright.

This is a regression introduced in 3.13.10. As of the forum thread, there is no official Cursor fix and no staff response. Upgrading the OS to 24.04 (which ships GLIBC 2.39) is a real fix but is heavy for production servers — the reporter explicitly rejected it. Below are the two workarounds you can use right now.

Option 1 — Roll Cursor back to a pre-3.13.10 build (safest)

The problem first appeared in 3.13.10, so an earlier version never installs the GLIBC-2.39 crepectl. Cursor's Remote SSH setup pushes the server binary that matches your local client version, so the trick is to downgrade the local client and clear the remote server cache.

  1. Grab the build just before 3.13.10 (e.g. 3.13.9 or 3.12.x) from Cursor's downloads page/changelog and install it over your local Cursor.
  2. Turn off auto-update so it doesn't jump back to 3.13.10: Settings → Application → Update → disable auto update.
  3. On the remote server, delete the cached server binaries so it re-provisions:
bash

   rm -rf ~/.cursor-server
  1. Reconnect from Cursor. The older crepectl (compatible with system GLIBC 2.35) is reinstalled.

If you're not comfortable at the shell, this is the safest route. Move back to the latest Cursor once a patched build ships.

Option 2 — Sideload GLIBC 2.39 for crepectl (advanced, community-confirmed, fragile)

This is the workaround confirmed working in the thread — for Instant Grep only. It leaves the OS untouched and just unpacks Ubuntu 24.04's libc6 2.39 into your home directory so crepectl loads that instead. The script below reconstructs the behavior described in the thread (download 24.04 libc6 2.39 into ~/.local/share/cursor-glibc239, back up crepectl, replace it with a wrapper) using the standard technique of invoking the newer ld-linux loader — the original community script itself was not published in the thread.

Caveat: mixing glibc versions is fragile, and the wrapper is overwritten every time the Cursor server updates, so you must re-run this. It never touches the system glibc, so the risk of breaking the whole server is low — but keep it scoped to crepectl only.

On the remote server:

bash

#!/usr/bin/env bash
set -euo pipefail

# 1) Unpack only Ubuntu 24.04 libc6 (= GLIBC 2.39) into home (no OS change)
GLIBC_DIR="$HOME/.local/share/cursor-glibc239"
mkdir -p "$GLIBC_DIR"; cd "$GLIBC_DIR"
# The version string (2.39-0ubuntuX.Y) changes with security updates. If this 404s,
# grab the current libc6_2.39-*_amd64.deb from http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/
wget -N http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/libc6_2.39-0ubuntu8.4_amd64.deb
dpkg -x libc6_2.39-*_amd64.deb .

# 2) Locate the real crepectl
CREPECTL="$(find "$HOME/.cursor-server" -type f -name crepectl -path '*helpers*' | head -n1)"
[ -n "$CREPECTL" ] || { echo "crepectl not found — connect once from Cursor to install the server, then re-run"; exit 1; }

# 3) Back up the original (first time only)
[ -f "$CREPECTL.orig" ] || cp "$CREPECTL" "$CREPECTL.orig"

# 4) Replace crepectl with a wrapper that runs the original via the newer loader + libc
cat > "$CREPECTL" <<EOF
#!/usr/bin/env bash
G="$GLIBC_DIR/lib/x86_64-linux-gnu"
exec "\$G/ld-linux-x86-64.so.2" --library-path "\$G:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu" "$CREPECTL.orig" "\$@"
EOF
chmod +x "$CREPECTL"
echo "Done — in Cursor run Cmd/Ctrl+Shift+P → 'Developer: Reload Window'"

Then run Developer: Reload Window in Cursor and indexing comes back. If a server update breaks it again, just re-run the script.

Root cause & tracking

  • The real fix is either (a) upgrade the server to Ubuntu 24.04 so system glibc is 2.39, or (b) Cursor rebuilding crepectl against glibc 2.35 or shipping it statically linked. (b) is on Cursor, so update to the latest build once a patch lands.
  • Subscribe to the forum thread and watch the Cursor changelog for a crepectl/GLIBC fix.