Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.248 Home All releases olderv2.1.247 v2.1.250newer
Claude Code v2.1.248

Claude Code refuses its daemon socket inside an unmapped user namespace

You'll notice
Useful3 Signal2
Cross-Session Messaging not in their notes

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

unshare -Ur
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.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.248 →