Skip to content

[BUG] managed-settings.json auto-updates are disabled when they should not with CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=0 #29134

Description

@tonglil

Preflight Checklist

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

What's Wrong?

Using managed-settings.json and want to enforce auto updates to the stable version of Claude Code.

However, claude doctor shows disabled, even though CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC is set to 0 in managed-settings.json:

claude doctor

 Diagnostics
 └ Currently running: native (2.1.44)
 └ Path: /Users/user/.local/share/claude/versions/2.1.44
 └ Invoked: /Users/user/.local/share/claude/versions/2.1.44
 └ Config install method: native
 └ Search: OK (bundled)

 Updates
 └ Auto-updates: disabled (CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC set)
 └ Auto-update channel: stable
 └ Stable version: 2.1.44
 └ Latest version: 2.1.59

 Press Enter to continue…

This is the managed-settings.json configuration in /Library/Application Support/ClaudeCode:

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "autoUpdatesChannel": "stable",
  "env": {
    "DISABLE_AUTOUPDATER": 0,
    "DISABLE_BUG_COMMAND": 1,
    "DISABLE_ERROR_REPORTING": 1,
    "DISABLE_TELEMETRY": 1,
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 0,
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": 1
  }
}
...

I want to only allow autoupdates and keep other telemetry/traffic off.

I have read through https://code.claude.com/docs/en/settings and understand that CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC is the equivalent of setting DISABLE_AUTOUPDATER, DISABLE_BUG_COMMAND, DISABLE_ERROR_REPORTING, and DISABLE_TELEMETRY together, which is why I set it to 0 - to prevent users from setting it to 1 and disabling auto updates at at the user level.

What Should Happen?

claude doctor should show Auto-updates: enabled (or something like that), even with CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC set to 0.

If I exclude CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC from managed-settings.json, doesn't it mean users can set it and in essence set DISABLE_AUTOUPDATER to 1?

Error Messages/Logs

Steps to Reproduce

Use managed-settings.json:

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "autoUpdatesChannel": "stable",
  "env": {
    "DISABLE_AUTOUPDATER": 0,
    "DISABLE_BUG_COMMAND": 1,
    "DISABLE_ERROR_REPORTING": 1,
    "DISABLE_TELEMETRY": 1,
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 0,
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": 1
  }
}

Run claude doctor

Claude Model

None

Is this a regression?

I don't know

Last Working Version

No response

Claude Code Version

2.1.44 (Claude Code)

Platform

Other

Operating System

macOS

Terminal/Shell

iTerm2

Additional Information

Related ticket: #13463

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:corebugSomething isn't workinghas reproHas detailed reproduction stepsplatform:macosIssue specifically occurs on macOSstaleIssue is inactive

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions