[BUG] Code and Settings tabs missing on Linux — GrowthBook feature flags reload as 347/347 changed amid repeated "account change" refreshes

Status Open
Reported on v2.1.268
Maintainer reply None cached
Activity 1 comment · opened Sep 16, 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?

The Claude Desktop app only shows the "Chat" and "Cowork" top-level tabs. Both "Code" and "Settings" are completely absent from the UI — there is no visible way to access them.

Log evidence points to a feature-flag (GrowthBook) refresh anomaly rather than a plan/entitlement issue:

main.log shows repeated [growthbook] refreshing for account change events firing back-to-back within the same second, with no actual account switch performed by the user.
Immediately after one of these refresh bursts, the feature flag payload goes from loaded 347 features (0 changed) to loaded 347 features (347 changed) — i.e. 100% of flags registered as changed in a single reload, which looks like a full feature-state reset rather than an incremental update.
No entitlement/plan_type/subscription/tier log lines are present at all in main.log, so this does not appear to be a plan-gating issue.
Environment
OS: Linux (Debian-based, official apt repo)
Claude Desktop version: 1.52386.6 (amd64)
Install method: apt install claude-desktop from the official stable repo
Plan: (fill in — Pro/Max/Team)
Steps Already Tried
Full app restart (pkill -9 -f Claude / pkill -9 -f claude-desktop, removed stale SingletonLock/SingletonSocket/SingletonCookie, relaunched)
Confirmed on latest available package version (apt list -a claude-desktop)
Verified network/DNS is not the cause: curl -I to api.anthropic.com, assets-proxy.anthropic.com, and claude.ai all resolve and respond (Cloudflare 403/404 responses expected from curl without browser headers); nslookup against 8.8.8.8 matches local systemd-resolved results exactly — no DNS hijacking
Checked /etc/hosts — no overrides for anthropic.com/claude.ai domains
No VPN, Pi-hole, AdGuard, dnsmasq, or similar interfering DNS/proxy tooling running

What Should Happen?

Code and Settings tabs should render normally alongside Chat and Cowork, as documented for the Linux beta (only Computer Use, dictation, the Quick Entry global hotkey on native Wayland, and Fedora/RHEL support are documented as missing from Linux).

Relevant Log Excerpt
2026-09-15 23:38:38 [info] [growthbook] refreshing for account change
2026-09-15 23:38:39 [info] [growthbook] refreshing for account change
2026-09-15 23:38:39 [info] [growthbook] next refresh in 60 min
2026-09-15 23:38:39 [info] [growthbook] loaded 347 features (0 changed)
2026-09-15 23:38:39 [info] [growthbook] next refresh in 60 min
2026-09-15 23:38:40 [info] [growthbook] refreshing for account change
2026-09-15 23:38:40 [info] [growthbook] loaded 347 features (0 changed)
2026-09-15 23:38:40 [info] [growthbook] next refresh in 60 min
2026-09-15 23:39:42 [info] [growthbook] next refresh in 60 min
2026-09-15 23:39:43 [info] [growthbook] loaded 347 features (347 changed)
2026-09-15 23:39:45 [info] [growthbook] refreshing for account change
2026-09-15 23:39:46 [info] [growthbook] loaded 347 features (0 changed)
2026-09-15 23:39:46 [info] [growthbook] next refresh in 60 min
2026-09-15 23:39:46 [info] [growthbook] refreshing for account change
2026-09-15 23:39:47 [info] [growthbook] refreshing for account change
2026-09-15 23:39:47 [info] [growthbook] next refresh in 60 min
2026-09-15 23:39:47 [info] [growthbook] loaded 347 features (0 changed)
2026-09-15 23:39:47 [info] [growthbook] next refresh in 60 min

Additionally, on the first launch after a clean pkill, the process printed only:

[info] [growthbook] loaded 347 features (1 changed)

and then exited immediately ([1] + <pid> done), suggesting a leftover Electron singleton instance absorbed the launch before the reported symptom (missing Code/Settings tabs) could be re-observed in that particular run.

Additional Information
No entitlement/plan/subscription log lines present anywhere in main.log.
GTK warning gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed also appears on every launch — likely unrelated/cosmetic, noting for completeness.

Error Messages/Logs

Steps to Reproduce

  1. Install Claude Desktop on Linux from the official apt repo (apt install claude-desktop, version 1.52386.6 amd64), following the normal apt update flow.
  2. Open the app and sign in with an account on a Pro/Max/Team plan.
  3. Observe the top navigation bar: only "Chat" and "Cowork" tabs appear. There is no "Code" tab and no visible way to access "Settings" anywhere in the interface.
  4. Check ~/.config/Claude/logs/main.log filtered by "growthbook" during startup. Multiple "refreshing for account change" events fire back-to-back within the same second, with no account switch performed by the user.
  5. Immediately after that refresh burst, the log goes from "loaded 347 features (0 changed)" to "loaded 347 features (347 changed)" — 100% of feature flags register as changed in a single reload.
  6. Rule out external causes: curl to api.anthropic.com, assets-proxy.anthropic.com, and claude.ai all respond normally; nslookup against 8.8.8.8 matches the local resolver; /etc/hosts has no overrides; no VPN, Pi-hole, dnsmasq, or proxy tooling is interfering.
  7. Fully kill all Claude processes (pkill -9 -f Claude), remove SingletonLock/SingletonSocket/SingletonCookie, and relaunch. Code and Settings remain absent.

Claude Model

Sonnet (default)

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.268

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Warp

Additional Information

<img width="1935" height="1080" alt="Image" src="https://github.com/user-attachments/assets/81ee245d-1ebd-4af2-b54a-60cd65e1262c" />

_No response_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗