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

Resolved 💬 5 comments Opened Feb 26, 2026 by tonglil Closed Apr 9, 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?

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: https://github.com/anthropics/claude-code/issues/13463

View original on GitHub ↗

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