Codebase indexing is stuck on loading indefinitely

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Codebase indexing is stuck on loading indefinitely. I am SSHd into an Amazon linux ARM server.

I see that there are other, similar bug reports, and have tried doing what other have discussed there, to no avail.

Steps to Reproduce

Create an AWS EC2 instance. Here is the info of the ARM, t4g.large instance I’m running on:

NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023.11.20260514"

Create a minimal python repo (tree screenshotted)

Python requirements.txt as follows:

Django==6.0.5
psycopg[binary,pool]

Python version is 3.13.13, installed using Pyenv, with requirements installed into a virtualenv.

Let me know if Python version / env has anything to do with this - I doubt it, but if so, will give more details on that.

I’m using macOS 26.3.1 (25D2128).

Expected Behavior

I go to cursor settings expecting the indexing to finish, but it just keeps saying “loading”

Screenshots / Screen Recordings

Operating System

Linux

Version Information

Version: 3.5.33
VSCode Version: 1.105.1
Commit: aac81804b986d739acab348ed96b8bea6e83cc50
Date: 2026-05-22T06:47:48.039Z
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
OS: Darwin arm64 25.3.0

Additional Information

I have tried clearing the remote cursor server cache with rm -rf ~/.cursor-server, created a cursor ignore with:

node_modules/
.git/
dist/
build/
target/
.venv/
venv/
*.log

I’ve also deleted ~/Library/Application Support/Cursor/User/workspaceStorage/ on my laptop.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the detailed report. Version 3.5.33 should already include the fix for the previous Loading… bug, so this looks like something else, most likely an init or network issue in the indexing extension on the remote host.

To figure out where it’s getting stuck, can you share a couple things:

  1. Output log: View > Output > in the dropdown on the right select Cursor Indexing & Retrieval. Copy everything in there, especially the latest messages if there are errors or it hangs on auth or connection.
  2. Network diagnostics: Cursor Settings > Network > Run Diagnostics. Run it on the remote host, not locally.
  3. Reachability to the indexing backend from the EC2 instance: on the ARM host run:
    curl -v https://repo42.cursor.sh
    
    If it hangs or returns an error, it’s a network issue like security group, NAT, or egress rules.

Also check if there’s any proxy or firewall on the EC2 instance that could be blocking only repo42.cursor.sh. Agent or Composer can use a different endpoint, so they may work while indexing doesn’t.

Once you’ve got that, send it here and we’ll take a look.

Thanks for the fast reply - I really appreciate it. Looks like it might be a git issue?

Git is installed.

Index output

Here is the indexing and retrieval output:

2026-05-24 11:56:15.930 [info] [FastIndexer] Local mode enabled — codebase indexing disabled
2026-05-24 11:56:16.007 [error] Error getting repo info: Failed to execute git
2026-05-24 11:56:16.007 [error] Error: Failed to execute git
	at $De.<anonymous> (/home/ec2-user/.cursor-server/cli/servers/Stable-aac81804b986d739acab348ed96b8bea6e83cc50/server/extensions/cursor-retrieval/dist/main.js:2:3752242)
	at Generator.next (<anonymous>)
	at a (/home/ec2-user/.cursor-server/cli/servers/Stable-aac81804b986d739acab348ed96b8bea6e83cc50/server/extensions/cursor-retrieval/dist/main.js:2:3749777)
	at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
2026-05-24 12:14:20.065 [error] Error getting git status: Failed to execute git
2026-05-24 12:15:12.550 [error] Error fetching commits in batch: Failed to execute git
2026-05-24 12:15:14.500 [error] Error fetching commits in batch: Failed to execute git
2026-05-24 12:15:20.110 [error] Error fetching commits in batch: Failed to execute git
2026-05-24 12:15:22.975 [error] Error fetching commits in batch: Failed to execute git
2026-05-24 12:15:23.045 [error] Error fetching commits in batch: Failed to execute git
2026-05-24 12:15:30.180 [error] Error fetching commits in batch: Failed to execute git
2026-05-24 12:15:36.105 [warning] Failed to get symbolic ref: Failed to execute git
2026-05-24 12:15:36.156 [warning] Failed to get default branch from git config: Failed to execute git
2026-05-24 12:15:36.229 [warning] Failed to get symbolic ref: Failed to execute git
2026-05-24 12:15:36.290 [warning] Failed to get default branch from git config: Failed to execute git
2026-05-24 12:15:55.554 [error] Error fetching commits in batch: Failed to execute git
2026-05-24 12:16:00.582 [error] Error fetching commits in batch: Failed to execute git
2026-05-24 12:16:26.754 [error] Error fetching commits in batch: Failed to execute git
2026-05-24 12:16:32.196 [error] Error getting submodules: A system error occurred (ENOENT: no such file or directory, open '/home/ec2-user/s/ep-crm/.gitmodules')
2026-05-24 12:16:37.777 [warning] Failed to get symbolic ref: Failed to execute git
2026-05-24 12:16:37.956 [info] Picked default branch from method 1.
2026-05-24 12:26:15.281 [error] Error getting submodules: A system error occurred (ENOENT: no such file or directory, open '/home/ec2-user/s/ep-crm/.gitmodules')

I ran

(ep-crm) [ec2-user@ip-172-31-27-253 ep-crm]$ which git
git --version
/usr/bin/git
git version 2.50.1
(ep-crm) [ec2-user@ip-172-31-27-253 ep-crm]$ 

So git is def installed

Network

All tests pass

Curl command

(ep-crm) [ec2-user@ip-172-31-27-253 ep-crm]$ curl -v https://repo42.cursor.sh
* Host repo42.cursor.sh:443 was resolved.
* IPv6: (none)
* IPv4: 52.73.108.100, 34.236.63.68, 32.194.2.118, 54.83.152.76, 52.22.218.48, 100.29.240.100, 32.195.131.89, 35.168.55.154
*   Trying 52.73.108.100:443...
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* SSL Trust Anchors:
*   CAfile: /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / x25519 / RSASSA-PSS
* ALPN: server accepted h2
* Server certificate:
*   subject: CN=repo42.cursor.sh
*   start date: Feb  5 00:00:00 2026 GMT
*   expire date: Mar  6 23:59:59 2027 GMT
*   issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M04
*   Certificate level 0: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
*   subjectAltName: "repo42.cursor.sh" matches cert's "repo42.cursor.sh"
* SSL certificate verified via OpenSSL.
* Established connection to repo42.cursor.sh (52.73.108.100 port 443) from 172.31.27.253 port 38180 
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://repo42.cursor.sh/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: repo42.cursor.sh]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.17.0]
* [HTTP/2] [1] [accept: */*]
> GET / HTTP/2
> Host: repo42.cursor.sh
> User-Agent: curl/8.17.0
> Accept: */*
> 
* Request completely sent off
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
< HTTP/2 404 
< server: awselb/2.0
< date: Sun, 24 May 2026 13:22:00 GMT
< content-type: text/plain; charset=utf-8
< content-length: 31
< 
* Connection #0 to host repo42.cursor.sh:443 left intact
The request could not be routed(ep-crm) [ec2-user@ip-172-31-27-253 ep-crm]$ 

Tried defining git path

Didn’t work

Thanks for the detailed write-up. The log clearly shows the cause.

The very first line [FastIndexer] Local mode enabled - codebase indexing disabled is a hard short-circuit in the cursor-retrieval extension. Because of that, indexing never starts at all, and all the later Failed to execute git messages are just secondary noise from the extension running in a half-disabled state. Git is installed and available on your side (you can see it from which git), and the network to repo42.cursor.sh is also fine (an HTTP/2 404 from the ALB is a normal response).

This is the same root cause as the bug that was fixed in 3.4.17 and then again in 3.5.x (BuildFlags.localMode was not stripped during the extension build). On v3.5.33 Stable it should be fixed, but it looks like the fix did not make it into the extension bundle for the SSH remote server (~/.cursor-server/.../extensions/cursor-retrieval/). That uses a separate build path. That is why clearing ~/.cursor-server does not help. A fresh copy from the same server still contains the flag.

I reported this to the team with your log. No ETA for a fix yet.

What you can try right now as a workaround:

  • Switch the release track to Nightly: Cursor Settings > Beta > Release Track > Nightly. The proper fix landed earlier in the nightly channel, so there is a chance the nightly cursor-server build also has it. No promises, but it’s cheap to test.

If switching to Nightly fixes indexing, let me know. That is a useful signal. If not, we can stay on Stable and wait for the fix.

Nice, updating to the following fixed it for now:

Version: 3.6.4
VS Code Extension API: 1.105.1
Commit: dc723a1219cbd96d4f828ddca64e8fffdc060f20
Date: 2026-05-24T01:48:24.881Z
Layout: editor
Build Type: Stable
Release Track: Nightly
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: Darwin arm64 25.5.0

Thank you very much for help on a Sunday.