#10876·syncthing

v2.1.3: folder initialization hangs forever on macOS TCC denial — no error logged, all /rest/db API endpoints hang

Author: c-withCreated Sep 6, 2026Updated Sep 12, 2026

v2.1.3: folder initialization hangs forever on macOS TCC denial — no error logged, all /rest/db API endpoints hang

What happened

On macOS, when the syncthing binary lacks TCC permission to read a folder path (e.g. ~/Documents), the affected folder never finishes initialization. Instead of surfacing an error, Syncthing silently deadlocks with severe side effects:

  1. The affected folder never logs anything — no Ready to synchronize, no error, no StateChanged events. It just silently never comes up.
  2. The entire database/API layer hangs: all /rest/db/* endpoints (/rest/db/status, /rest/db/completion, /rest/db/scan) and /rest/system/connections hang indefinitely (curl timeouts after 90+ seconds), while config endpoints (/rest/config/*, /rest/system/status, /rest/system/ping) respond normally.
  3. Other folders keep working, which masks the problem — the instance looks partially healthy.
  4. Remote peers show as connected via LAN, but the sync protocol stalls (non-zero send queues that never drain).

Environment

  • Syncthing v2.1.3 (Homebrew, macOS 15.5, arm64)
  • Folder A: ~/backups/... — unaffected (path not TCC-protected), works fine
  • Folder B: ~/Documents/Knowledge — deadlocks (TCC-protected path)

Evidence

Kernel sandbox violation log at each startup:

kernel: (Sandbox) [com.apple.sandbox.reporting:violation] System Policy: syncthing(59189) deny(4) file-read-data /Users/with/Documents/Knowledge

Syncthing logs only show TCC attribution requests, no folder error:

tccd: [com.apple.TCC:access] AUTHREQ_ATTRIBUTION: ... binary_path=/opt/homebrew/Cellar/syncthing/2.1.3/bin/syncthing

(No visible TCC consent dialog appeared — the process runs as a background service via brew services, so the prompt is never seen by the user.)

Expected behavior

Ideally one or more of:

  1. Log a clear folder-level error (e.g. "folder path denied by OS: permission error") and mark the folder as errored in GUI/API, instead of hanging during initialization.
  2. Keep /rest/db/* endpoints responsive for healthy folders even when one folder's model is stuck.
  3. Possibly detect the macOS TCC case specifically and point users to System Settings.

Notes

  • Rebuilding the index database (index-v2/) did not help — reproduced across 3 process restarts.
  • Granting the binary Documents access (TCC) immediately fixed everything: folder came up, sync resumed, API responsive.
  • Possibly related to how brew services launches the binary so TCC prompts go nowhere.