Síntomas

Te conectas por Remote SSH a un servidor Ubuntu 22.04 LTS, ejecutas Cursor 3.13.10 y la indexación/búsqueda de código deja de funcionar por completo.

  • Toast (abajo a la derecha): index build failed: miniserde error
  • Registro del panel Output: crepectl: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.39' not found
  • Mensajes que lo acompañan: cannot index repository without Git, Not creating an indexing watcher: no queryable index to build
  • La búsqueda en Codebase y @codebase devuelven vacío o no hacen nada

Causa

crepectl es el indexador de Instant Grep de Cursor: el binario que construye el índice de búsqueda de código. A partir de Cursor 3.13.10, ese binario está compilado contra GLIBC 2.39. Ubuntu 22.04 LTS trae GLIBC 2.35. Como el glibc del sistema es más antiguo que 2.39, el binario no puede cargarse en absoluto y la indexación falla por completo.

Es una regresión introducida en la 3.13.10. Al momento del hilo del foro, no hay arreglo oficial de Cursor ni respuesta del equipo. Actualizar el sistema operativo a 24.04 (que trae GLIBC 2.39) sí es un arreglo real, pero es pesado para servidores de producción: quien lo reportó lo rechazó expresamente. Abajo tienes los dos rodeos que puedes usar ahora mismo.

Opción 1 — Vuelve Cursor a una build anterior a la 3.13.10 (lo más seguro)

El problema apareció por primera vez en la 3.13.10, así que una versión anterior nunca instala el crepectl de GLIBC 2.39. La configuración de Remote SSH de Cursor envía al servidor el binario que coincide con la versión de tu cliente local, así que el truco es bajar el cliente local y limpiar la caché del servidor remoto.

  1. Consigue la build justo anterior a la 3.13.10 (por ejemplo, 3.13.9 o 3.12.x) desde la página de descargas/changelog de Cursor e instálala sobre tu Cursor local.
  2. Desactiva la actualización automática para que no vuelva a saltar a la 3.13.10: Settings → Application → Update → desactiva la actualización automática.
  3. En el servidor remoto, borra los binarios del servidor en caché para que se reaprovisione:
bash

   rm -rf ~/.cursor-server
  1. Reconéctate desde Cursor. Se reinstala el crepectl antiguo (compatible con el GLIBC 2.35 del sistema).

Si no te sientes cómodo en la terminal, esta es la ruta más segura. Vuelve al Cursor más reciente cuando salga una build corregida.

Opción 2 — Carga manualmente GLIBC 2.39 para crepectl (avanzado, confirmado por la comunidad, frágil)

Este es el rodeo confirmado como funcional en el hilo — solo para Instant Grep. No toca el sistema operativo: solo descomprime el libc6 2.39 de Ubuntu 24.04 en tu directorio home para que crepectl cargue ese en su lugar. El script de abajo reconstruye el comportamiento descrito en el hilo (descargar el libc6 2.39 de 24.04 en ~/.local/share/cursor-glibc239, respaldar crepectl y reemplazarlo por un wrapper) usando la técnica estándar de invocar el loader ld-linux más nuevo — el script original de la comunidad no llegó a publicarse en el hilo.

Advertencia: mezclar versiones de glibc es frágil, y el wrapper se sobrescribe cada vez que el servidor de Cursor se actualiza, así que tienes que volver a ejecutarlo. Nunca toca el glibc del sistema, así que el riesgo de romper todo el servidor es bajo, pero mantenlo acotado solo a crepectl.

En el servidor remoto:

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'"

Luego ejecuta Developer: Reload Window en Cursor y la indexación vuelve. Si una actualización del servidor la rompe de nuevo, simplemente vuelve a ejecutar el script.

Causa raíz y seguimiento

  • El arreglo de verdad es (a) actualizar el servidor a Ubuntu 24.04 para que el glibc del sistema sea 2.39, o (b) que Cursor recompile crepectl contra glibc 2.35 o lo distribuya enlazado estáticamente. (b) le toca a Cursor, así que actualiza a la última build cuando salga el parche.
  • Suscríbete al hilo del foro y vigila el changelog de Cursor por un arreglo de crepectl/GLIBC.