Follow Discord
Sweep 22 Oct 2026 · 21:04Z Build v2.1.309 528 read Stable v2.1.308 Latest v2.1.309 Next v2.1.309 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.248 ·

Claude Code refuses its daemon socket inside an unmapped user namespace

On Linux, an unmapped user namespace now refuses the daemon socket and suggests unshare -Ur.

You'll notice No documentation found New Features
JSON All of v2.1.248
You'll noticeTier: how much it should matter to you
3Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
Cross-Session MessagingArea: what it touches
New FeaturesKind: in v2.1.248,
New FeaturesSection of the release
What

On Linux, Claude Code now works out whether it is running in a user namespace with no uid mapping, where every uid collapses to the overflow uid (usually 65534) or root is ambiguous. In that case it refuses to use the daemon socket and tells you to start with a mapping, for example unshare -Ur, because it cannot verify who owns the socket directory or who is on the other end.

Details
  • Reads /proc/self/uid_map and /proc/sys/kernel/overflowuid.
  • The uid_map parse is now a synchronous readFileSync memoised into the process-namespace cache rather than an async read on every call, and is also used to translate container uids back to host uids.
  • Linux-only by construction, since it depends on those procfs paths. No feature flag.
Evidence

refusing to use the daemon socket: this process runs in a user namespace without a uid mapping, so directory and peer ownership cannot be verified (start it with a mapping, e.g. unshare -Ur), uidsCollapse = null;

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Read from
Names in the bundleunshare -Ur

See this entry in the whole of v2.1.248 →

Feedback