[BUG] Plugin marketplace sync causes indefinite hang on startup (Synology NAS / non-standard Linux)

Resolved 💬 3 comments Opened Mar 27, 2026 by kimseokho1226 Closed Mar 30, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When running claude on a Synology NAS (DSM 7, x86_64) via SSH, the TUI completely hangs on startup — no output, no error, just a frozen terminal. The process stays alive but never renders the interactive UI.

Root cause identified: The plugin marketplace sync process (git pull from anthropics/claude-plugins-official) runs synchronously during startup with no timeout. On environments where git credential helpers are not properly configured or GitHub access is slow/blocked, this causes an indefinite hang.

Evidence:

  • claude --bare works perfectly (skips plugin sync, hooks, LSP, etc.)
  • claude -p "hello" also hangs (times out after 30s with no output)
  • Removing known_marketplaces.json contents and clearing plugins/marketplaces/, plugins/cache/, plugins/data/ directories resolves the issue
  • Simply setting "enabledPlugins": {} in settings.json is NOT sufficient — the marketplace sync still runs regardless
  • Network connectivity to api.anthropic.com is confirmed working
  • OAuth credentials are valid and not expired

What Should Happen?

  1. Plugin marketplace sync should have a reasonable timeout (e.g., 5-10 seconds). If the sync fails or times out, Claude Code should start normally and log a warning rather than hanging indefinitely.
  1. Plugin sync should be asynchronous — it should not block the TUI from rendering. The UI should load first, and plugin updates can happen in the background.
  1. If no plugins are enabled ("enabledPlugins": {}), marketplace sync should be skipped entirely — there is no reason to pull marketplace data if no plugins are active.

Error Messages/Logs

No error messages — the process hangs silently with no output.
Running with timeout shows only terminal control codes:
$ timeout 10 claude -p "hello"
[?1006l][?1003l][?1002l][?1000l][>4m][<u][?1004l][?2004l][?25h]]9;4;0;]]0;[?25h]

Steps to Reproduce

  1. Install Claude Code v2.1.85 on a Synology NAS (DSM 7, x86_64) via npm
  2. Log in with claude and authenticate via OAuth
  3. Install any plugin (e.g., /plugins install typescript-lsp) — this registers a marketplace in ~/.claude/plugins/known_marketplaces.json
  4. Exit and run claude again — the TUI hangs indefinitely on startup with no output and no error
  5. Run claude --bare — works perfectly, confirming the issue is in the startup initialization path
  6. Clear marketplace data (echo '{}' > ~/.claude/plugins/known_marketplaces.json) and run claude again — works normally

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.85 (Claude Code)

Platform

Anthropic API

Operating System

Other Linux

Terminal/Shell

Other

Additional Information

Environment details:

  • Synology NAS DS920+ (DSM 7.x, x86_64)
  • Default shell: /bin/sh (BusyBox ash)
  • Node.js: v20.20.0 (via nvm)
  • SSH access from Windows PowerShell
  • Auth: Claude Max (OAuth)
  • TERM=xterm-256color

Key finding: The known_marketplaces.json file contained a reference to the anthropics/claude-plugins-official GitHub repo. On startup, Claude Code attempts to git pull or git clone this repo synchronously. On the Synology NAS, where git credential helpers are not configured for GitHub, this operation blocks indefinitely waiting for credentials — but since it is running as a subprocess, there is no way to provide them, causing a silent hang.

Suggestion: Add a configurable timeout (default ~10s) for the marketplace sync operation, and make it non-blocking so the TUI can render while plugins sync in the background. Also, if enabledPlugins is empty, consider skipping marketplace sync entirely.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗