[BUG] Claude Code Homebrew cask hangs on startup on macOS 26.3 (arm64)
Status Closed — not planned
Reported on v2.1.49
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 13 comments · opened Feb 20, 2026 · closed Jun 5, 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?
Environment:
- claude-code 2.1.49 (Homebrew cask)
- macOS 26.3 (25D125)
- Apple Silicon (arm64)
Description:
Claude Code hangs on startup — all commands including claude --version hang indefinitely. The binary never reaches main().
Debugging performed:
- Reinstalling via
brew reinstall claude-codedoesn't help - Removing
~/.claudedoesn't help - Removing quarantine xattrs doesn't help
lsofshows no open files/sockets beyond stdin/stdout/stderrsampleshows the process stuck in_dyld_start(dyld) — the dynamic linker never finishes
Sample output:
Call graph:
7808 Thread_82181: Main Thread
7808 _dyld_start (in dyld) + 0 [0x10ddfc9c0]
Linked libraries (all system):
/usr/lib/libicucore.A.dylib
/usr/lib/libresolv.9.dylib
/usr/lib/libc++.1.dylib
/usr/lib/libSystem.B.dylib
Workaround:
Installing via npm (npm install -g @anthropic-ai/claude-code) works.
What Should Happen?
Claude Code should not hang on startup
Error Messages/Logs
Steps to Reproduce
- Install claude-code via Homebrew on MacOS 26.3:
brew install --cask claude-code - Run any command:
claude --version - The process hangs indefinitely — no output, no crash, requires manual kill
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.49
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
Showing cached comments. Read the full discussion on GitHub ↗
12 Comments
Found 2 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
I think I'm having a similar issue.
macOS 26.4 beta (25E5218f)
native installer v2.1.58
Apple M4 Max
Interactive mode takes ~60-120 minutes (!!) to start. It does eventually succeed -- the
tcsetattrcall isn't hanging forever, it's blocking for an extremely long time.claude --printalso eventually returns after ~2 hours.claude doctorandclaude --versionwork normally (presumably don't enter raw mode).samplebelow shows the main thread blocked on:This is likely
tcsetattr(TCSADRAIN)which blocks until pending terminal output drains. macOS 26.4 appears to have a regression where this drain takes 60-120 minutes.What I've ruled out:
--printmode works (slowly)claudewith no flags,--continue,--resume, any directorystty sane,TERM=dumb,CLAUDE_CODE_SIMPLE=1,CLAUDE_CODE_SKIP_UPDATE_CHECK=1all exhibit the same delayPotential fix: Could Claude Code use TCSANOW instead of TCSADRAIN for raw mode setup? TCSANOW applies changes immediately without waiting for output to drain. The drain behavior is clearly broken on macOS 26.4 beta.
Workaround: Waiting ~60-120 minutes for startup to complete.
Note: once interactive mode actually starts, the TUI is fully functional with no further delays or issues. This is consistent with
TCSADRAINblocking on a spurious pending-output condition that eventually resolves, after which the terminal settings are applied correctly.Also notable:
libRosetta.dylibis loaded in the binary images, which is unusual for a native ARM64 process. This may indicate the binary is running under Rosetta translation, or that Rosetta is loaded as a dependency. Either way, it's a potentially relevant difference from the npm-installed path which runs under native ARM node.<details>
<summary>Full sample trace</summary>
Sampling process 67598 for 3 seconds with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Sample analysis of process 67598 written to file /tmp/claude_2026-02-25_140014_kLPj.sample.txt
Analysis of sampling claude (pid 67598) every 1 millisecond
Process: 2.1.58 [67598]
Path: /Users/USER/*/2.1.58
Load Address: 0x104810000
Identifier: 2.1.58
Version: 0
Code Type: ARM64
Platform: macOS
Parent Process: bash [66832]
Target Type: live task
Date/Time: 2026-02-25 14:00:14.043 -0800
Launch Time: 2026-02-25 13:59:50.166 -0800
OS Version: macOS 26.4 (25E5218f)
Report Version: 7
Analysis Tool: /usr/bin/sample
Physical footprint: 53.2M
Physical footprint (peak): 53.2M
Idle exit: untracked
----
Call graph:
2521 Thread_663793 DispatchQueue_1: com.apple.main-thread (serial)
2521 Thread_663794: JavaScriptCore libpas scavenger
2521 Thread_663795: Heap Helper Thread
2521 Thread_663796: Heap Helper Thread
2521 Thread_663797: Heap Helper Thread
2521 Thread_663798: JIT Worklist Helper Thread
2521 thread_start (in libsystem_pthread.dylib) + 8 [0x18d152c1c]
2521 _pthread_start (in libsystem_pthread.dylib) + 136 [0x18d157c58]
2521 ??? (in 2.1.58) load address 0x104810000 + 0x17f20d8 [0x1060020d8]
2521 ??? (in 2.1.58) load address 0x104810000 + 0x17a5b44 [0x105fb5b44]
2521 ??? (in 2.1.58) load address 0x104810000 + 0x1766bac [0x105f76bac]
2521 ??? (in 2.1.58) load address 0x104810000 + 0x1781268 [0x105f91268]
2521 ??? (in 2.1.58) load address 0x104810000 + 0x17f2794 [0x106002794]
2521 _pthread_cond_wait (in libsystem_pthread.dylib) + 980 [0x18d158128]
2521 __psynch_cvwait (in libsystem_kernel.dylib) + 8 [0x18d11750c]
Total number in stack (recursive counted multiple, when >=5):
5 __psynch_cvwait (in libsystem_kernel.dylib) + 0 [0x18d117504]
5 _pthread_cond_wait (in libsystem_pthread.dylib) + 980 [0x18d158128]
5 _pthread_start (in libsystem_pthread.dylib) + 136 [0x18d157c58]
5 thread_start (in libsystem_pthread.dylib) + 8 [0x18d152c1c]
Sort by top of stack, same collapsed (when >= 5):
__psynch_cvwait (in libsystem_kernel.dylib) 12605
__ioctl (in libsystem_kernel.dylib) 2521
Binary Images:
0x104810000 - 0x10800d2b3 +2.1.58 (0) <5A999DFB-FE2B-39F4-A07B-DCEAD65A4E37> /Users/*/2.1.58
0x18ccf4000 - 0x18cd46b7b libobjc.A.dylib (951.6) <3965C785-7F37-3648-8640-38C0CF47DE88> /usr/lib/libobjc.A.dylib
0x18cd47000 - 0x18cd7bb34 libdyld.dylib (1376.6) <03FC95BE-DB5E-3E55-ADC5-43321839B499> /usr/lib/system/libdyld.dylib
0x18cd7c000 - 0x18ce21ecb dyld (1.0.0 - 1376.6) <765DE06E-47F3-39D7-8820-FB7F64CBBFD8> /usr/lib/dyld
0x18ce22000 - 0x18ce25228 libsystem_blocks.dylib (96) <FEACC835-DA51-3E36-8E25-1A776E8D1AD1> /usr/lib/system/libsystem_blocks.dylib
0x18ce26000 - 0x18ce7a51f libxpc.dylib (3102.100.101.501.1) <68F37C82-19B7-3F67-85A1-F47D397FEEE3> /usr/lib/system/libxpc.dylib
0x18ce7b000 - 0x18ce9b9bf libsystem_trace.dylib (1861.100.19) <13F8829D-B377-38DF-9EC1-04BFFB8434B3> /usr/lib/system/libsystem_trace.dylib
0x18ce9c000 - 0x18cf49d8f libcorecrypto.dylib (1922.100.99) <B5E315EC-02D2-3D66-9148-551DF7228B2C> /usr/lib/system/libcorecrypto.dylib
0x18cf4a000 - 0x18cf9a1d7 libsystem_malloc.dylib (812.100.30) <704A3EA7-FED2-3CF8-B1A8-7BE2B46B8588> /usr/lib/system/libsystem_malloc.dylib
0x18cf9b000 - 0x18cfe223f libdispatch.dylib (1542.100.32) <A8CAB0C9-1FA2-3BB6-A4B2-F6093743CF08> /usr/lib/system/libdispatch.dylib
0x18cfe3000 - 0x18cfe5ffb libsystem_featureflags.dylib (103) <8312EE4D-10AE-3630-906F-EEF505439A91> /usr/lib/system/libsystem_featureflags.dylib
0x18cfe6000 - 0x18d066ef7 libsystem_c.dylib (1752.100.10) <F3C70EC5-99FB-3F94-9534-017F06ABA58A> /usr/lib/system/libsystem_c.dylib
0x18d067000 - 0x18d0f7ae7 libc++.1.dylib (2100.41) <6F16BEA8-C576-37C7-B0D0-2B4D6EA19564> /usr/lib/libc++.1.dylib
0x18d0f8000 - 0x18d11275f libc++abi.dylib (2100.41) <848625ED-FA18-3002-ABF3-1BFF7D715788> /usr/lib/libc++abi.dylib
0x18d113000 - 0x18d15029f libsystem_kernel.dylib (12377.100.625.0.3) <25C6C5E3-C70D-341A-A241-1400EB496308> /usr/lib/system/libsystem_kernel.dylib
0x18d151000 - 0x18d15db3b libsystem_pthread.dylib (539.100.3) <A77F77F9-9B4E-3646-BDDD-5213A08F3AA7> /usr/lib/system/libsystem_pthread.dylib
0x18d15e000 - 0x18d1668f3 libsystem_platform.dylib (375.100.10) <B61AB5EF-9716-3BF9-B467-BE014C4FEA41> /usr/lib/system/libsystem_platform.dylib
0x18d167000 - 0x18d1966eb libsystem_info.dylib (600) <41845494-D88D-35D1-B20C-6E3A70B5DA72> /usr/lib/system/libsystem_info.dylib
0x190e51000 - 0x191126d33 libicucore.A.dylib (76142.4.6) <30CB7AC3-08A5-3714-AA4F-5C594DF91094> /usr/lib/libicucore.A.dylib
0x191127000 - 0x191130e5f libsystem_darwin.dylib (1752.100.10) <00B4FAEA-85C8-3FDA-A444-CFCD1FE8F64A> /usr/lib/system/libsystem_darwin.dylib
0x191592000 - 0x1915a3f5b libsystem_notify.dylib (348.100.7) <729640B6-C7E2-3759-9A20-B10926755EEA> /usr/lib/system/libsystem_notify.dylib
0x193856000 - 0x193870f5b libsystem_networkextension.dylib (2226.100.30.0.1) <AA06936A-6058-3578-83DE-7AF527A8C401> /usr/lib/system/libsystem_networkextension.dylib
0x1938f3000 - 0x19390afdf libsystem_asl.dylib (406) <EA0B2295-9D22-3370-9604-B2658D7C7E11> /usr/lib/system/libsystem_asl.dylib
0x19548d000 - 0x195495387 libsystem_symptoms.dylib (2169.100.30) <62A9DAC6-36F8-3612-9C32-8F42CC8FB8F7> /usr/lib/system/libsystem_symptoms.dylib
0x199705000 - 0x19973d25f libsystem_containermanager.dylib (725.100.37) <A383FFAE-8657-3E61-A318-9374258888A6> /usr/lib/system/libsystem_containermanager.dylib
0x19ac1b000 - 0x19ac1f5d7 libsystem_configuration.dylib (1405.100.8) <4D016EF1-8CA7-3F8E-AF91-71A0588155EA> /usr/lib/system/libsystem_configuration.dylib
0x19ac20000 - 0x19ac266b7 libsystem_sandbox.dylib (2680.100.170.0.1) <9E3100A2-8D5D-344F-8B75-0643EA0DA826> /usr/lib/system/libsystem_sandbox.dylib
0x19c248000 - 0x19c24b1fb libquarantine.dylib (196.100.8) <67DA2D5B-0CDA-352C-8036-9543D4EE678C> /usr/lib/system/libquarantine.dylib
0x19c9e7000 - 0x19c9edd03 libsystem_coreservices.dylib (191.4.5) <9B12AB5F-95B8-3AE1-9B08-6202E749D54E> /usr/lib/system/libsystem_coreservices.dylib
0x19cf6b000 - 0x19cfa8a77 libsystem_m.dylib (3312.100.1) <9BDFC8A3-C6C9-3E0E-9CF4-0D439BDA4391> /usr/lib/system/libsystem_m.dylib
0x19cfaa000 - 0x19cfad527 libmacho.dylib (1376.6) <4F655C67-1BE4-365E-BBDE-095F43F95E61> /usr/lib/system/libmacho.dylib
0x19cfc7000 - 0x19cfd43a7 libcommonCrypto.dylib (600035) <1D431E4B-AA2A-31B0-A1CE-38C2569D3CEC> /usr/lib/system/libcommonCrypto.dylib
0x19cfd5000 - 0x19cfdeca3 libunwind.dylib (2100.2) <83E59FA7-229B-31D8-A557-4C4EADB28BB3> /usr/lib/system/libunwind.dylib
0x19cfe7000 - 0x19cff17ff libcopyfile.dylib (240) <A0A8817C-ED2C-32AA-A2D2-BC9F7010348F> /usr/lib/system/libcopyfile.dylib
0x19cff2000 - 0x19cff5987 libcompiler_rt.dylib (103.3) <B5D927F9-EF03-3EF5-AE95-FD45D5D188B8> /usr/lib/system/libcompiler_rt.dylib
0x19cff6000 - 0x19cffa78b libsystem_collections.dylib (1752.100.10) <97C288BD-C9E7-3894-9139-EF4BF1A0D524> /usr/lib/system/libsystem_collections.dylib
0x19cffb000 - 0x19cffe4cf libsystem_secinit.dylib (168.100.7) <AA373207-7909-302D-A533-5F09007B4A7D> /usr/lib/system/libsystem_secinit.dylib
0x19cfff000 - 0x19d001bf7 libremovefile.dylib (85.100.6) <B3617CD1-39CC-3F3A-98D0-D7DBD218E65F> /usr/lib/system/libremovefile.dylib
0x19d002000 - 0x19d002f27 libkeymgr.dylib (31) <E7FBCEDC-5623-316F-8415-D77CA8574D65> /usr/lib/system/libkeymgr.dylib
0x19d003000 - 0x19d00be37 libsystem_dnssd.dylib (2881.100.56) <980410F1-D9A4-3C07-9BB9-D23CAEF460A7> /usr/lib/system/libsystem_dnssd.dylib
0x19d00c000 - 0x19d01109b libcache.dylib (95) <36919663-9EBE-3DBA-A2F0-6DB84CA06A5B> /usr/lib/system/libcache.dylib
0x19d012000 - 0x19d013ce3 libSystem.B.dylib (1356) <FC4CD02F-B695-3CC5-9D3B-33AF3874B4C8> /usr/lib/libSystem.B.dylib
0x1a19b9000 - 0x1a19d519b libresolv.9.dylib (96) <34594853-36AD-39A8-98B0-6DE050F7BFDA> /usr/lib/libresolv.9.dylib
0x291535000 - 0x29153c339 libRosetta.dylib (367.3) <6E193869-6FB3-3F40-80A7-03CE734C57D8> /usr/lib/libRosetta.dylib
0x293243000 - 0x293246a4b libsystem_darwindirectory.dylib (122) <F200265D-E2DB-316B-B601-5E3CADCD2C54> /usr/lib/system/libsystem_darwindirectory.dylib
0x293247000 - 0x2932505a7 libsystem_eligibility.dylib (319.100.56) <69E31851-E836-31F2-B663-D9C45CBA1F50> /usr/lib/system/libsystem_eligibility.dylib
0x293251000 - 0x2932588db libsystem_sanitizers.dylib (26) <1210864E-8162-37B1-913B-557302EBE9B7> /usr/lib/system/libsystem_sanitizers.dylib
0x293259000 - 0x293259bb7 libsystem_trial.dylib (474.2.17) <244862C7-F3DD-38FD-8C2C-89421BE7870E> /usr/lib/system/libsystem_trial.dylib
</details>
I think the original report and the tcsetattr problem might be different problems with the same symptom.
The stack traces are not the same: the OP reports hanging in dyld, before main is ever reached, which I think would preclude any calls to
tcsetattrunder programmer control. (unless it's dyld doing the tcsetattr?)I think this issue also is broader than Claude - I have reproduced what could be the exact same hang using both Redis server as well as Apache Maven. I strongly suspect this is a Mac OS bug. The stack in my case looks like:
Is your problem mitigated (temporarily) by rebooting?
I filed a Feedback request with Apple about 6 months ago on this subject, but no response...
Reboot didn't mitigate at all for me -- I tried a few times (blocking suspect things from loading on boot)...nothing helped until I turned off the
Radio SilenceNetwork Extension! I'd been running that for years with no issue...Now all is back to normal with Claude.So....if you're running, like Little Snitch, Radio Silence, etc...try disabling.
But, I agree, seems like MacOS's fault at this point.
Same issue on macOS 26.3.1 (25D2128), Apple Silicon ARM64.
The npm workaround (npm install -g @anthropic-ai/claude-code) does not work either on this version — process hangs identically at _dyld_start.
Same issue on macOS 26.3.1 (25D2128), Mac Mini M4 Pro. Both Homebrew cask and npm install hang identically. Process hangs before any logging initialises. Started after macOS update on 2026-03-11. claude --version works fine but interactive session hangs indefinitely.
Any workaround for this bug?
Same issue here with native installer. Sometimes the cli starts after a few hours ..
macOS, 26.4.1, BuildVersion: 25E253
2.1.114 (Claude Code)
Not sure if this will help anyone, but my issue was authentication related:
When I ran claude command like claude doctor,claude, claude auth; I get no response (it hangs).
But when I ran claude --help and claude -v; they works.
What fixed mine is removing the claude.json, and running claude again
I'm sorry, but it seems my problem was actually caused by something else.
An external tool kept automatically syncing a corrupted and very large CLAUDE.md file. This caused the system to freeze for several hours, unfortunately without any helpful error messages.
Adding a data point on macOS 26.3.1 (release, not beta): same tcsetattr →
ioctl → __ioctl stack, but the process immediately goes to STAT=T (stopped),
never recovering. Long-running pre-existing sessions remain healthy, only
newly-launched ones are affected. Reported with fuller diagnostic in #57254.
Closing for now — inactive for too long. Please open a new issue if this is still relevant.