Interactive mode crashes with "zsh: suspended (signal)" on macOS 26.2
Status Closed — not planned
Reported on v2.1.29
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 13 comments · opened Feb 1, 2026 · closed Mar 12, 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
- macOS: 26.2 (Build 25C56)
- Claude Code: 2.1.29 (also tested 2.1.17)
- Node.js: Tested v18.20.8 and v20.19.0
- Terminals: Warp, Terminal.app (both crash)
- Shell: zsh
Description
Interactive mode crashes with zsh: suspended (signal) within seconds of launching. The UI renders duplicate frames before crashing. Non-interactive mode (--print) works fine.
Steps to Reproduce
- Fresh install:
curl -fsSL https://claude.ai/install.sh | bash - Run
claude - Type anything
- Observe duplicate rendering and crash
Debug Info
- Debug log shows:
High write ratio: blit=0, write=1617 (100.0% writes) - System logs show excessive
nw_path_libinfo_path_checknetwork calls - Crash occurs regardless of terminal width
- Crash occurs with
TERM=dumb claude --print "hello"works correctly
What I've Tried
- Fresh install (wiped ~/.claude, ~/.claude.json, all backups)
- Multiple Claude Code versions (2.1.17, 2.1.29)
- Multiple Node versions (18, 20)
- Multiple terminals (Warp, Terminal.app)
- Wider terminal window
- TERM=dumb
- Removed all MCP servers
Workaround
claude --print mode works, only interactive mode is broken.
What Should Happen?
Claude Code should launch and stay responsive without crashing. The UI should render cleanly without duplicate frames.
Error Messages/Logs
Steps to Reproduce
- Install Claude Code:
curl -fsSL https://claude.ai/install.sh | bash - Run
claudein any terminal - Type any text and press Enter
- Observe: UI duplicates frames multiple times, then crashes with "zsh: suspended (signal)"
Claude Model
Opus
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
2.1.29
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Warp
Additional Information
The --print flag works correctly, only interactive mode is broken. This suggests the issue is in the terminal UI renderer (Ink/React), not the API connection.
13 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
No this is a specific bug for macOS 26.2 update - that happened afterwards
https://developer.apple.com/documentation/Xcode-Release-Notes/xcode-26_2-release-notes
it started working - dupes are gone
i had it again today.
recorded a video about it
https://x.com/i/status/2019299768195850550
Update from today (2026-02-11): still happening on Claude Code v2.1.39, macOS 26.2 (25C56), zsh.
It's now showing both:
[1] + suspended (signal)[1] + suspended (tty input)Interactive TUI repeatedly redraws the splash + prompt block (same frame over and over), then suspends.
--printmode is still fine.I verified this is not MCP setup and reproduced after isolating startup variables:
rust-analyzer-lsp,graphyn-core)--disable-slash-commands --no-chrome--strict-mcp-config --mcp-config /tmp/empty-mcp.json)Even with all of that, the TUI still re-renders the same initial frame in a loop and suspends.
Also seeing recurring renderer diagnostics in debug logs consistent with prior reports, e.g. repeated high write ratios / write-only frames in earlier sessions (
blit=0, write=...).So at least in my environment, this reproduces even after removing plugin + MCP factors; looks like a core TUI/job-control interaction on macOS 26.2.
Additional datapoint from a fresh repro in v2.1.39 (debug enabled):
OAuth token check startingevents in the same second (2026-02-11T10:47:44Z).I can share the full debug file if you want a direct attachment path/format.
<img width="774" height="867" alt="Image" src="https://github.com/user-attachments/assets/9dac0052-19e2-4758-bee1-44f04c464d9b" />
this is how it looks like
Fresh datapoint: full wipe + reinstall still reproduces on macOS 26.2 with v2.1.39.
What I did:
curl -fsSL https://claude.ai/install.sh | bash)Observed behavior in first launch:
1) Theme/onboarding screens repeatedly redraw/restart
2) Login flow completes successfully
3) Reaches normal prompt (
Try "how do I log an error?")4) Header/prompt redraw loop appears again
5) process stops with
zsh: suspended (signal)So this is reproducible after a true clean reinstall and before custom plugin/MCP restoration.
Possible repro clue from environment diff:
On affected machine session, shell env includes:
TERM_PROGRAM=WarpTerminalLANG=C.UTF-8LC_ALL=C.UTF-8NO_COLOR=1I can still repro the redraw/suspend path in this environment.
Suggest checking whether the TUI renderer behavior changes with locale/color env normalization (e.g.
LANG/LC_ALL=en_US.UTF-8,NO_COLORunset), since this machine differs from my other Mac where issue does not occur.Latest update (workaround found on affected Mac):
A shell wrapper that launches interactive Claude inside a nested PTY (
/usr/bin/script) appears to stop the recurringsuspended (signal)/suspended (tty input)behavior in my Warp + macOS 26.2 environment.Working wrapper pattern:
LANG/LC_ALL=en_US.UTF-8, unsetNO_COLOR)script -q /dev/null ~/.local/bin/claude ...Non-interactive modes (
--print,--version, etc.) still run directly.This looks like a TTY/job-control interaction specific to this environment, not install corruption (clean reinstall previously reproduced the issue).
Closing for now — inactive for too long. Please open a new issue if this is still relevant.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.