Files
MajorWiki/05-troubleshooting/obsidian-cache-hang-recovery.md
MajorLinux 6592eb4fea wiki: audit fixes — broken links, wikilinks, frontmatter, stale content (66 files)
- Fixed 4 broken markdown links (bad relative paths in See Also sections)
- Corrected n8n port binding to 127.0.0.1:5678 (matches actual deployment)
- Updated SnapRAID article with actual majorhome paths (/majorRAID, disk1-3)
- Converted 67 Obsidian wikilinks to relative markdown links or plain text
- Added YAML frontmatter to 35 articles missing it entirely
- Completed frontmatter on 8 articles with missing fields

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 11:16:29 -04:00

4.5 KiB

title, domain, category, tags, status, created, updated
title domain category tags status created updated
Obsidian Vault Recovery — Loading Cache Hang troubleshooting general
obsidian
troubleshooting
windows
majortwin
published 2026-03-11 2026-04-02

Obsidian Vault Recovery — Loading Cache Hang

Problem

Obsidian refused to open MajorVault, hanging indefinitely on "Loading cache" with no progress. The issue began with an EACCES permission error on a Python venv symlink inside the vault, then persisted even after the offending files were removed.

Root Causes

Two compounding issues caused the hang:

  1. 79GB of ML project files inside the vault. The 20-Projects/MajorTwin directory contained model weights, training artifacts, and venvs that Obsidian tried to index on every launch. Specifically:

    • 06-Models — ~39GB of model weights
    • 09-Artifacts — ~38GB of training artifacts
    • 10-Training — ~1.8GB of training data
    • 11-Tools — Python venvs and llama.cpp builds (with broken symlinks on Windows)
  2. Stale Electron app data. After Obsidian attempted to index the 79GB, it wrote corrupt state into its global app data (%APPDATA%\obsidian). This persisted across vault config resets and caused the hang even after the large files were removed.

A secondary contributing factor was "open": true in obsidian.json, which forced Obsidian to resume the broken session on every launch.

Resolution Steps

1. Remove large non-note directories from the vault

Move-Item "C:\Users\majli\Documents\MajorVault\20-Projects\MajorTwin\06-Models" "D:\MajorTwin\06-Models"
Move-Item "C:\Users\majli\Documents\MajorVault\20-Projects\MajorTwin\09-Artifacts" "D:\MajorTwin\09-Artifacts"
Move-Item "C:\Users\majli\Documents\MajorVault\20-Projects\MajorTwin\10-Training" "D:\MajorTwin\10-Training"
Remove-Item -Recurse -Force "C:\Users\majli\Documents\MajorVault\20-Projects\MajorTwin\11-Tools\venv-unsloth"
Remove-Item -Recurse -Force "C:\Users\majli\Documents\MajorVault\20-Projects\MajorTwin\11-Tools\llama.cpp"

2. Reset the vault config

Rename-Item "C:\Users\majli\Documents\MajorVault\.obsidian" "C:\Users\majli\Documents\MajorVault\.obsidian.bak"

3. Fix the open flag in obsidian.json

'{"vaults":{"9147b890194dceb0":{"path":"C:\\Users\\majli\\Documents\\MajorVault","ts":1773207898521,"open":false}}}' | Set-Content "$env:APPDATA\obsidian\obsidian.json"

4. Wipe Obsidian global app data (the key fix)

Stop-Process -Name "Obsidian" -Force -ErrorAction SilentlyContinue
Rename-Item "$env:APPDATA\obsidian" "$env:APPDATA\obsidian.bak"

5. Launch Obsidian and reselect the vault

Obsidian will treat it as a fresh install. Select MajorVault — it should load cleanly.

6. Restore vault config and plugins

Copy-Item "$env:APPDATA\obsidian.bak\obsidian.json" "$env:APPDATA\obsidian\obsidian.json"
Copy-Item "C:\Users\majli\Documents\MajorVault\.obsidian.bak\*.json" "C:\Users\majli\Documents\MajorVault\.obsidian\"
Copy-Item "C:\Users\majli\Documents\MajorVault\.obsidian.bak\plugins.bak" "C:\Users\majli\Documents\MajorVault\.obsidian\plugins" -Recurse

7. Clean up backups

Remove-Item -Recurse -Force "$env:APPDATA\obsidian.bak"
Remove-Item -Recurse -Force "C:\Users\majli\Documents\MajorVault\.obsidian.bak"

Prevention

Add a .obsidianignore file to the vault root

20-Projects/MajorTwin/06-Models
20-Projects/MajorTwin/09-Artifacts
20-Projects/MajorTwin/10-Training
20-Projects/MajorTwin/11-Tools

Add exclusions in Obsidian settings

Settings → Files & Links → Excluded files → add 20-Projects/MajorTwin/11-Tools

Keep ML project files off the vault entirely

Model weights, venvs, training artifacts, and datasets do not belong in Obsidian. Store them on D drive or in WSL2. WSL2 (Fedora43) can access D drive at /mnt/d/MajorTwin/.

Key Diagnostic Commands

# Check vault size by top-level directory
Get-ChildItem "C:\Users\majli\Documents\MajorVault" -Directory | ForEach-Object {
    $size = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum
    [PSCustomObject]@{ Name = $_.Name; SizeMB = [math]::Round($size/1MB, 1) }
} | Sort-Object SizeMB -Descending

# Check obsidian.json vault state
Get-Content "$env:APPDATA\obsidian\obsidian.json"

# Check Obsidian log
Get-Content "$env:APPDATA\obsidian\obsidian.log" -Tail 50

# Check if Obsidian is running/frozen
Get-Process -Name "Obsidian" | Select-Object CPU, WorkingSet, PagedMemorySize