`Unhandled node type: pipeline` when piping a heredoc into a command
Summary
Piping a heredoc directly into a command (cat <<'EOF' | cmd) triggersUnhandled node type: pipeline on the confirmation prompt. The semantically equivalent
redirect form (cmd < file) does not trigger.
Reproduction
# Triggers "Unhandled node type: pipeline":
cat <<'EOF' | cat
hello world
EOF
# Workaround -- write to a file first, then redirect (no pipeline node):
printf 'hello world\n' > /tmp/repro_input.txt
cat < /tmp/repro_input.txt
Expected: the heredoc-pipe pattern is a common shell idiom; it should parse consistently
with the redirect form, or at least produce a specific prompt that describes the unsupported
construct.
Observed: cat <<'EOF' | cmd triggers Unhandled node type: pipeline. The redirect form
(cmd < file) passes without error.
Notes
Related: #47701 (closed, framed around file_redirect). That report mentions several missing
node type handlers. The pipeline failure from heredoc-pipe appears to be a distinct case: the
parser fails at the pipeline node rather than at a redirect node, and the < file workaround
works, suggesting the two code paths are separate.
Environment
- claude-code version: 2.1.118
- OS: macOS 26.4.1
- Shell: /bin/zsh
- Notes: heavy use of git worktrees and multiple language toolchains
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗