Diagnosing and Fixing IntelliJ IDEA Indexing Stalls (2023.1+)
A step‑by‑step diagnostic guide for IntelliJ IDEA 2023.1+ indexing stalls: recognize the symptoms, run ordered checks, apply targeted fixes, and know when to escalate.
14 Feb 2026, 01:26 UTC

Recognizable condition
Indexing stalls appear as a persistent "Indexing…" badge in the status bar for more than five minutes, grayed‑out nodes in the Project tool window, broken code completion, empty Find Usages results, or a Java process (often named Shared Indexes or JPS Build) consuming 100 % CPU. The .idea/index folder may exceed 2 GB.
Cause / diagnostic table
| # | Cause | Typical evidence |
|---|---|---|
| 1 | Corrupted index files | .idea/index/* > 2 GB or timestamps mismatch .idea/workspace.xml |
| 2 | Shared indexes download stuck | Network proxy blocks jetbrains.com; ~/.cache/JetBrains/SharedIndexes/ incomplete |
| 3 | Gradle/Maven sync loop | Build scripts regenerate sources on every sync, triggering re‑index |
| 4 | File‑Based Indexer (FBI) migration incomplete | 2023.1+ uses new engine; old indexes not purged |
| 5 | Antivirus/endpoint scanner locking index files | Windows Defender, CrowdStrike, Carbon Black show AccessDenied on .idea/index/* |
| 6 | Case‑sensitive FS mismatch | macOS APFS (case‑insensitive) vs Linux case‑sensitive in Docker/WSL2 causing duplicate entries |
Ordered checks
- Indexing status – In the IDE: Help → Diagnostic Tools → Show Indexing Status. Note the counts for Indexing files, Queued, Paused.
- Log inspection – Open
~/.cache/JetBrains/IntelliJIdea<version>/log/idea.log(Linux/macOS) or%APPDATA%\JetBrains\IntelliJIdea<version>\log\idea.log(Windows). Search forIndexing,FileBasedIndex,Corrupted,AccessDenied.grep -E "Indexing|FileBasedIndex|Corrupted|AccessDenied" ~/.cache/JetBrains/IntelliJIdea2024.2/log/idea.log - Invalidate caches – File → Invalidate Caches…, check Clear file system cache and Local History, then restart. Observe whether indexing finishes in <3 minutes.
- Build‑tool auto‑reload – Settings → Build, Execution, Deployment → Build Tools → Maven/Gradle. Disable Reload projects after changes in build scripts if a sync loop is suspected.
- Antivirus exclusions – Add folder exclusions for the project root,
~/.cache/JetBrains, and~/.local/share/JetBrains(Linux) or%APPDATA%\JetBrains(Windows). Requires admin rights on managed machines. - Case‑sensitivity alignment – On WSL2/Docker run:
Verify withgit config core.ignorecase falsegit ls-files | sort -f | uniq -iD(should return nothing). Re‑clone if mismatched.
Fixes tied to findings
- Corrupted indexes – Run Invalidate Caches (step 3). If the problem persists, shut down IDE and delete
.idea/indexmanually. - Shared indexes stuck – Settings → Appearance & Behavior → System Settings → Shared Indexes. Turn off Download pre‑built shared indexes, then remove
~/.cache/JetBrains/SharedIndexes. - Sync loop – Disable auto‑reload (step 4) and use Reload All Gradle Projects manually.
- FBI migration – After Invalidate Caches, delete
.idea/index(IDE closed) and restart; a fresh FBI index will be built (2023.1+). - Antivirus lock – Apply exclusions (step 5) and restart IDE.
- Case‑sensitivity – Align
core.ignorecaseand filesystem semantics (step 6), then re‑clone the repository.
Concrete example
A 50 k‑file Kotlin/Spring project is switched to a feature branch that changes 10 k files. The status bar shows Indexing… for 12 minutes, CPU stays at 95 % on the Shared Indexes process. Running the log grep (step 2) reveals repeated FileBasedIndex corruption entries. Invalidate Caches (step 3) reduces the next indexing run to 2 minutes and the log now contains FileBasedIndex: indexing completed in 112345 ms.
Escalation criteria
- Indexing does not complete after two full Invalidate Caches cycles.
idea.logshows repeatedFileBasedIndex corruptionorAccessDeniedafter antivirus exclusions are in place.- Shared indexes download fails with HTTP 403 or timeout on a clean network.
- CPU > 80 % for > 30 minutes post‑restart on a project with <50 k files.
- Issue reproduces in a clean configuration (Help → Collect Logs and Diagnostic Data → Create reproducible test case).
Limitations & verification
Invalidate Caches deletes Local History – any uncommitted changes not in VCS are lost. Disabling shared indexes increases first‑index time for large frameworks (Spring, Android) by 2–5×. Deleting .idea/index while the IDE runs causes undefined behavior; always shut down first. Antivirus exclusions may need IT approval; record the ticket number. The WSL2 case‑sensitivity fix requires a re‑clone, so stash or push uncommitted work first. IntelliJ 2024.2+ changed the FBI storage format – indexes from 2023.x are incompatible and auto‑purged on first launch.
To verify a fix: after Invalidate Caches, indexing should finish <3 minutes for a 50 k‑file project on SSD with 16 GB RAM; the log must contain a line like FileBasedIndex: indexing completed in XX ms. In Settings → Shared Indexes → Show downloaded indexes you should see entries for used libraries (e.g., kotlin-stdlib, spring-boot). On Windows, Process Monitor (Procmon) should show no Access Denied on .idea/index/* during indexing. The command git ls-files | sort -f | uniq -iD must return empty in the repo root.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.