Sintomas
Você conecta via Remote SSH a um servidor Ubuntu 22.04 LTS, roda o Cursor 3.13.10 e a indexação/busca de código para de funcionar por completo.
- Toast (canto inferior direito):
index build failed: miniserde error - Log do painel Output:
crepectl: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.39' not found - Mensagens que aparecem junto:
cannot index repository without Git,Not creating an indexing watcher: no queryable index to build - A busca no Codebase e o
@codebasevoltam vazios ou não fazem nada
Causa
crepectl é o indexador do Instant Grep do Cursor — o binário que constrói o índice de busca de código. A partir do Cursor 3.13.10, esse binário passou a ser compilado contra o GLIBC 2.39. O Ubuntu 22.04 LTS traz o GLIBC 2.35. Como o glibc do sistema é mais antigo que o 2.39, o binário não consegue carregar de jeito nenhum e a indexação falha por completo.
Isso é uma regressão introduzida na 3.13.10. Até o momento da thread no fórum, não há correção oficial do Cursor nem resposta da equipe. Atualizar o sistema operacional para o 24.04 (que traz o GLIBC 2.39) é uma correção de verdade, mas é pesado para servidores de produção — quem reportou rejeitou isso explicitamente. Abaixo estão os dois contornos que você pode usar agora mesmo.
Opção 1 — Volte o Cursor para uma build anterior à 3.13.10 (mais seguro)
O problema apareceu pela primeira vez na 3.13.10, então uma versão anterior nunca instala o crepectl com GLIBC 2.39. A configuração de Remote SSH do Cursor envia ao servidor o binário que corresponde à versão do seu cliente local, então o truque é fazer downgrade do cliente local e limpar o cache do servidor remoto.
- Pegue a build imediatamente anterior à 3.13.10 (por exemplo, 3.13.9 ou 3.12.x) na página de downloads/changelog do Cursor e instale por cima do seu Cursor local.
- Desative a atualização automática para não voltar para a 3.13.10: Settings → Application → Update → desative a atualização automática.
- No servidor remoto, apague os binários do servidor em cache para forçar o reprovisionamento:
rm -rf ~/.cursor-server
- Reconecte pelo Cursor. O crepectl antigo (compatível com o GLIBC 2.35 do sistema) é reinstalado.
Se você não se sente à vontade no terminal, esse é o caminho mais seguro. Volte para o Cursor mais recente assim que sair uma build corrigida.
Opção 2 — Carregue manualmente o GLIBC 2.39 para o crepectl (avançado, confirmado pela comunidade, frágil)
Esse é o contorno confirmado como funcional na thread — só para o Instant Grep. Ele não mexe no sistema operacional: apenas descompacta o libc6 2.39 do Ubuntu 24.04 no seu diretório home para que o crepectl carregue esse no lugar. O script abaixo reconstrói o comportamento descrito na thread (baixar o libc6 2.39 do 24.04 em ~/.local/share/cursor-glibc239, fazer backup do crepectl e substituí-lo por um wrapper) usando a técnica padrão de invocar o loader ld-linux mais novo — o script original da comunidade não chegou a ser publicado na thread.
Aviso: misturar versões de glibc é frágil, e o wrapper é sobrescrito toda vez que o servidor do Cursor atualiza, então você precisa rodar isso de novo. Ele nunca toca no glibc do sistema, então o risco de quebrar o servidor inteiro é baixo — mas mantenha tudo restrito só ao crepectl.
No servidor remoto:
#!/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'"
Depois execute Developer: Reload Window no Cursor e a indexação volta. Se uma atualização do servidor quebrar de novo, é só rodar o script mais uma vez.
Causa raiz e acompanhamento
- A correção de verdade é (a) atualizar o servidor para o Ubuntu 24.04 para que o glibc do sistema seja o 2.39, ou (b) o Cursor recompilar o crepectl contra o glibc 2.35 ou distribuí-lo com link estático. (b) depende do Cursor, então atualize para a última build assim que sair um patch.
- Assine a thread do fórum e fique de olho no changelog do Cursor por uma correção de crepectl/GLIBC.
