autoUpdates: false in ~/.claude.json is ignored on native installs; updated twice in two days, once mid-session

Status Open
Reported on v2.1.258
Maintainer reply None cached
Activity 0 comments · opened Sep 2, 2026

What happened

~/.claude.json has autoUpdates: false, and the native installer updated anyway — twice in two days, without being asked.

~/.claude/.last-update-result.json after the most recent one:

{
  "timestamp": "2026-09-02T22:39:41.511Z",
  "path": "native",
  "outcome": "success",
  "status": "success",
  "version_from": "2.1.258",
  "version_to": "2.1.259",
  "error_code": null
}

The version directory corroborates that this is recurring, not a one-off:

~/.local/share/claude/versions/
  2.1.257   Sep  1 11:16
  2.1.258   Sep  1 15:35
  2.1.259   Sep  2 15:34

~/.local/bin/claude was repointed to 2.1.259 at Sep 2 15:39 — mid-session.

Relevant config

From ~/.claude.json:

installMethod            = 'native'
autoUpdates              = False
autoUpdatesProtectedForNative = True

settings.json env block contains only CLAUDE_AFK_TIMEOUT_MS; no updater-related environment variable is set.

I don't know the intended semantics of autoUpdatesProtectedForNative — it may be deliberately overriding autoUpdates for native installs. If so, that is the bug from a user's point of view: autoUpdates: false is the documented, discoverable opt-out, and it silently does nothing on a native install.

Expected

Either:

  1. autoUpdates: false suppresses native auto-updates, or
  2. It is documented that it does not apply to native installs, and the setting surfaces that — rather than sitting in the config reading as though it is in effect.

Actual

autoUpdates: false is present and ignored. The install moved 2.1.257 → 2.1.258 → 2.1.259 across two days with no prompt, including one update partway through an active session.

Why it matters

On a version-sensitive setup this removes the ability to pin. It also makes "did this behaviour change because the build changed under me?" hard to answer during a debugging session — the binary moved mid-session here, which materially complicated diagnosing an unrelated problem.

Environment

  • Claude Code 2.1.259 (from 2.1.258, from 2.1.257)
  • Install method: native
  • macOS (Darwin 25.5.0)

View original on GitHub ↗