Indexing stuck at "Setting up index", waiting on semaphore

Describe the Bug

Indexing never finishes and in fact never really starts. It’s quite frustrating as it means navigation is much slower and the ai is nerfed. I’ve tried restarting the computer, and updating cursor. The indexing output logs look like this:

2025-06-25 10:38:58.482 [info] Creating Indexing Repo client:  https://repo42.cursor.sh
2025-06-25 10:38:58.482 [info] Creating repo client with backend url: https://repo42.cursor.sh
2025-06-25 10:38:58.482 [info] Using existing keys for an index
2025-06-25 10:38:58.482 [info] InternalRepoInfo constructor with preferredEmbeddingModel 0
2025-06-25 10:38:58.482 [info] Using existing keys for an index
2025-06-25 10:38:58.482 [info] InternalRepoInfo constructor with preferredEmbeddingModel 0
2025-06-25 10:38:58.482 [info] Doing a startup handshake.
2025-06-25 10:39:42.397 [info] Finished computing merkle tree in 46832.94975 ms.
2025-06-25 10:39:42.398 [info] Doing the initial handshake with hash: aa5c1469255571621b720d6a032cdb7a7ce7c911b4c91180dceeeb77953cfdf6
2025-06-25 10:39:42.678 [info] Computed simhash vector of length: 256
2025-06-25 10:39:42.678 [info] Path key hash: 2322398de83b22525fb12c13b11bfc1b3052e0d0da003d42a437e88c85f60873
2025-06-25 10:39:42.678 [info] Handshake start
2025-06-25 10:39:46.690 [warning] Retrying handshake with timeout 4000. Error:  [deadline_exceeded] the operation timed out
2025-06-25 10:39:46.690 [info] Handshake start
2025-06-25 10:39:49.362 [info] Handshake timing: 2672.067290999992, response: {"status":"STATUS_SUCCESS","codebases":[{"codebaseId":"2271f9a3-35e7-4d5b-9ba5-edc10b85fd1b","status":"STATUS_OUT_OF_SYNC","copyTaskHandle":""}]}
2025-06-25 10:39:49.362 [info] Handshake result: {"status":"STATUS_SUCCESS","codebases":[{"codebaseId":"2271f9a3-35e7-4d5b-9ba5-edc10b85fd1b","status":"STATUS_OUT_OF_SYNC","copyTaskHandle":""}]}
2025-06-25 10:39:49.362 [info] Starting fast remote sync.
2025-06-25 10:39:49.362 [info] Total num embeddable files: 201626
2025-06-25 10:39:49.363 [info] Root hash: aa5c1469255571621b720d6a032cdb7a7ce7c911b4c91180dceeeb77953cfdf6
2025-06-25 10:39:49.363 [info] In the out of sync case.
2025-06-25 10:39:49.364 [info] Waiting on semaphore to be released 1
2025-06-25 10:39:49.566 [info] Waiting on semaphore to be released 1
2025-06-25 10:39:49.772 [info] Waiting on semaphore to be released 13
2025-06-25 10:39:49.974 [info] Waiting on semaphore to be released 13
2025-06-25 10:39:50.179 [info] Waiting on semaphore to be released 15
2025-06-25 10:39:50.381 [info] Waiting on semaphore to be released 20
2025-06-25 10:39:50.584 [info] Waiting on semaphore to be released 20
2025-06-25 10:39:50.790 [info] Waiting on semaphore to be released 20
... (then it's just "Waiting on semaphore to be released 20" forever")

Steps to Reproduce

It just happens every time I open the app

Expected Behavior

It’s meant to begin indexing

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 1.1.5 (Universal)
VSCode Version: 1.96.2
Commit: ef5eeb47a684b4c217dfaf0463aa7ea952f8ab90
Date: 2025-06-21T05:26:18.966Z
Electron: 34.5.1
Chromium: 132.0.6834.210
Node.js: 20.19.0
V8: 13.2.152.41-electron.0
OS: Darwin arm64 24.5.0

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

I had the same problem, indexing stuck on “Waiting on semaphore to be released 1”.
Then I realized that my Markdown files would also not load. I disabled all Markdown related plugins, restarted Cursor, and the indexing went through in a second.
So my guess is: it’s always plugin-related. Disable them and try again.