"Could not load connectors directory" on every Claude Desktop launch (Linux) — marketplace migration runs before account IPC resolves
Summary
On every cold launch of Claude Desktop on Linux, a "could not load connectors directory" error is shown in the UI. The directory loads correctly a moment later, so the error is cosmetic — but it appears on every single launch.
Root cause from the logs appears to be a startup ordering race: remoteMarketplaceMigration and remoteUploadsMigration are invoked before the claude.ai account IPC has delivered accountId / orgId, so they fail with "No active account/org for marketplace operations". The account hydrates ~1 second later in the same boot sequence.
Environment
- OS: Linux Mint 22.3 (Cinnamon, X11), kernel 6.17.0-23-generic
- Claude Desktop (deb):
1.6608.2-2.0.10amd64, official Anthropic build (update URLapi.anthropic.com/api/desktop/linux/x64/squirrel/update) - App version in logs:
1.6608.2, Node24.15.0 - Embedded Claude Code (CCD):
2.1.128 - Account: signed in via OAuth, single org
Reproduction
- Fully quit Claude Desktop.
- Launch it.
- Observe the "could not load connectors directory" error in the UI.
- Wait a moment — the connectors directory loads correctly.
- Repeat. Happens every launch.
Expected
Marketplace / connectors migrations wait for the account+org IPC to resolve (or for loggedIn=true to settle) before running. No transient error surfaced to the user just because account hydration is still in flight.
Actual
Migrations fire immediately at startup, see accountId=null, orgId=null, and surface a user-visible error. Account hydrates ~1 second later in the same launch.
Log excerpt (~/.config/Claude/logs/main.log, UUIDs redacted)
18:11:39 [info] Starting app { appVersion: '1.6608.2', nodeVersion: '24.15.0' }
18:11:39 [info] [CCD] Initialized with version 2.1.128
18:11:39 [info] [account] Account details not yet available, waiting for IPC...
18:11:39 [info] [remoteMarketplaceMigration] marketplace_migration.invoked
18:11:39 [info] [remoteUploadsMigration] upload_migration.invoked
18:11:40 [info] [remoteMarketplaceMigration] marketplace_migration.gate_check
gate=claudeai_cowork_backend_marketplaces value=true
18:11:40 [info] [remoteMarketplaceMigration] marketplace_migration.paths_unavailable
err=Error: No active account/org for marketplace operations
18:11:40 [info] [remoteUploadsMigration] upload_migration.paths_unavailable
err=Error: No active account/org for marketplace operations
18:11:40 [info] claude.ai account details provided
18:11:40 [info] claude.ai account active and logged in
18:11:40 [info] [account] User logged out during IPC wait, stopping early
18:11:40 [warn] [LocalSessionManager] Cannot initialize sessions: accountId=null, orgId=null
18:11:40 [warn] [LocalAgentModeSessionManager] Cannot initialize sessions: accountId=null, orgId=null
Note the ordering: both migrations log .invoked before [account] Account details not yet available, waiting for IPC... resolves. Also note that [account] User logged out during IPC wait, stopping early fires after claude.ai account active and logged in — that looks like a second related bug (the IPC-wait short-circuit deciding "logged out" right after the account successfully attached).
Suggested fix direction
remoteMarketplaceMigration/remoteUploadsMigrationshouldawaitthe account-ready event (or subscribe to it), not fire on appready.- Separately, audit the
[account] User logged out during IPC wait, stopping earlyshort-circuit — it's firing even afterclaude.ai account active and logged in, which looks like a wait/resolve ordering bug.
Impact
Cosmetic but extremely visible. Every launch. Erodes user trust in the connectors feature even though it works fine once the app finishes hydrating.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗