{"version":"2.1.242","anchor":"a-socket-path-taken-by-another-running-claude-code-no-longer","canonical_anchor":"a-socket-path-taken-by-another-running-claude-code-no-longer","heading":"A socket path taken by another running Claude Code no longer breaks startup","tier":"notice","area":"Startup","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242\/e\/a-socket-path-taken-by-another-running-claude-code-no-longer","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242","markdown":"### A socket path taken by another running Claude Code no longer breaks startup\n\nStartup survives when another Claude Code already holds the socket path, retrying nearby.\n\n**What**\n\nWhen Claude Code picks its own local socket path for inter-process messaging, it now probes the existing file first: a leftover from a dead process is deleted and retried, and a socket a live sibling is using causes a bind at a randomised nearby path, up to three attempts. Sockets moved aside on earlier runs are cleaned up. A socket path you specify explicitly still fails hard if it is in use.\n\n**Details**\n\n- The failure message after three attempts warns that siblings may be in a different pid namespace, which is why liveness could not be judged.\n\n**Evidence**\n\n`listen EADDRINUSE on the auto socket path and its moved-aside siblings`\n\n- Area: Startup\n- Tier: You'll notice\n- Useful: 4\/5\n- Signal: 3\/5"}