[BUG] Gateway desktop: block missing chatTabEnabled — bootstrap disables Chat with no opt-in path

Status Closed — duplicate
Reported on v2.1.220
Maintainer reply None cached
Activity 2 comments · opened Aug 6, 2026 · closed Aug 15, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

The Claude Code Gateway's desktop: schema does not accept chatTabEnabled. When Claude Desktop is configured with bootstrapUrl pointing at the gateway's /user/bootstrap endpoint, the bootstrap response does not include chatTabEnabled — and Desktop interprets its absence as false, disabling the Chat tab entirely.

There is no way to enable Chat when using the gateway as the bootstrap server:

  1. Adding chatTabEnabled: true to the gateway's desktop: block → rejected at boot with unrecognized_keys
  2. Adding chatTabEnabled: true to the local imported JSON → overwritten by the bootstrap response on every launch
  3. Setting it via MDM alongside bootstrapUrlignored because "when a bootstrap response is in effect, it replaces MDM-delivered values wholesale"

This means deployments using the Claude Code Gateway as a bootstrap server are forced to lose the Chat tab with no workaround.

What Should Happen?

The gateway's desktop: schema should accept chatTabEnabled (and chatAdvancedFileAnalysisEnabled) so administrators can control all Desktop surfaces from the gateway config, matching what Desktop's bootstrap response schema supports.

Alternatively, the gateway should emit chatTabEnabled: true by default in its /user/bootstrap response when the key is not explicitly set in the desktop: block — matching the documented default behavior.

Context

The chatTabEnabled key was added to Claude Desktop on 2026-06-16 (per the configuration changelog). The gateway's desktop: schema has not been updated to include it as of gateway version 2.1.220.

Currently accepted desktop: keys in the gateway:

  • coworkTabEnabled
  • isClaudeCodeForDesktopEnabled
  • modelDiscoveryEnabled
  • isLocalDevMcpEnabled
  • isDesktopExtensionEnabled
  • isDesktopExtensionSignatureRequired
  • disableAutoUpdates
  • autoUpdaterEnforcementHours
  • banner
  • chatTabEnabledmissing
  • chatAdvancedFileAnalysisEnabledmissing

Error Messages/Logs

Adding chatTabEnabled to the gateway config:

claude gateway: [
  {
    "code": "unrecognized_keys",
    "keys": ["chatTabEnabled"],
    "path": ["managed", "policies", 0, "desktop"],
    "message": "Unrecognized key(s) in object: 'chatTabEnabled'"
  }
]

Gateway exits with code 1.

Steps to Reproduce

  1. Configure gateway with desktop: block (any valid keys)
  2. Set bootstrapUrl on device pointing at <gateway>/user/bootstrap
  3. Open Claude Desktop → Chat tab is gone
  4. Attempt to add chatTabEnabled: true to desktop: block → gateway crashes at boot
  5. No path to restore Chat while using bootstrap

Claude Model

Not applicable

Is this a regression?

No — chatTabEnabled was added to Desktop after the gateway's desktop: schema was defined

Last Working Version

Chat works when NOT using bootstrapUrl (direct inference provider config)

Claude Code Version

2.1.220 (gateway binary)

Platform

Other

Operating System

macOS

Terminal/Shell

N/A (Claude Desktop app)

Additional Information

  • Gateway version: 2.1.220
  • Claude Desktop: latest (3P mode)
  • The gateway's /user/bootstrap response correctly includes all keys from the desktop: block, but cannot include chatTabEnabled because the schema rejects it
  • Desktop's configuration reference lists chatTabEnabled with Availability "MDM + Bootstrap" — the bootstrap server should be able to deliver it, but the gateway cannot emit it
  • Other newly-added Desktop keys may have the same gap (any key added after the gateway's schema was frozen)

Suggested fix

  1. Add chatTabEnabled (default: true) and chatAdvancedFileAnalysisEnabled (default: false) to the gateway's desktop: schema
  2. Or: have the gateway emit all documented Desktop keys with their defaults in /user/bootstrap even when not explicitly configured in desktop:, so absence does not mean disabled

View original on GitHub ↗

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