Syncthing not converging
Symptom
  • File you saved on Mac Studio not appearing on MacBook (or vice versa)
  • Syncthing UI shows “Out of Sync” for a folder with a large file count behind it
  • New SKILL edits aren’t showing up on MacBook even after waiting
Diagnose

Open both UIs side-by-side:

  • Mac Studio: http://127.0.0.1:8384
  • Proxmox (hub): http://192.168.8.221:8384
  • MacBook: http://127.0.0.1:8384 on the MacBook itself, or via ssh -L 8385:127.0.0.1:8384 macbook from Studio

Check:

Indicator Meaning
Folder shows “Out of Sync” Real sync work pending; let it run (or kick it)
Folder shows “Up to Date” on both ends but file is missing .stignore is filtering the file โ€” check
One device offline Bring it online or wait
Folder shows huge queue size on one end Probably blocked behind an excluded path that previously synced
`.stignore` check

~/Sync/ED/.stignore excludes large subtrees from syncing (life_archive/data/, homelab/paperless-ngx/, etc.). If a file you want isn’t replicating, it might be under an excluded path.

cat ~/Sync/ED/.stignore

# Confirm whether a specific path is excluded
syncthing cli --home="$HOME/Library/Application Support/Syncthing" check ignore ~/Sync/ED/relative/path/to/file
# OR, simpler: just see if the file's parent is in stignore

To add an exclusion (e.g., a new bloat source):

# Edit ~/Sync/ED/.stignore โ€” add the relative path (no leading slash)
echo 'new/bloat/path' >> ~/Sync/ED/.stignore
# Syncthing watches .stignore and reloads automatically

To remove an exclusion: edit the file, save. Next scan will pick up the previously-excluded content.

Force a rescan

When Syncthing thinks everything’s in sync but a file is clearly missing, force a rescan on the source device:

# Find the folder ID in the Syncthing UI URL or via the API
SYNC_API="$(grep -oE '<apikey>[^<]+' ~/Library/Application\ Support/Syncthing/config.xml | head -1 | sed 's/<apikey>//')"
curl -s -X POST -H "X-API-Key: $SYNC_API" 'http://localhost:8384/rest/db/scan?folder=<folder-id>'

For the Studio’s claude-ed folder, the typical sequence after a heavy-edit session is:

# Trigger rescan, then wait a minute and check that Proxmox picked it up
launchctl kickstart -k gui/$(id -u)/com.beedifferent.syncthing  # restart Syncthing if its index is stuck
Conflict files

If both devices edited the same file while disconnected, Syncthing keeps both as conflict copies. Find them:

find ~/Sync/ED -name '*.sync-conflict-*' | head -20

Resolve: review each, pick the right version, delete the loser, let Syncthing replicate the winner.