まず切り分けたいのは、これが「Claude Code の起動そのものに失敗している」のか、それとも「起動済みのセッションは生きているが、新しい spawn だけ落ちる」のかです。今回参照した issue には、似た見え方をする spawn EBADF が 2 件ありましたが、症状の出方は少し違います。
#62735 では、@anthropic-ai/claude-agent-sdk 経由のタスクが spawn EBADF で失敗しています。報告では「Claude プロセスが始まる前、Node.js が stdio pipe を用意する OS/libuv の段階で落ちる」と書かれていて、Claude Code 2.1.152 へ自動更新した後に発生し、以前の版では見られなかったとのことです。
#82254 は VSCode 拡張側の報告です。こちらはセッション transcript を何度も走査するうちに file descriptor をリークし、しばらく稼働したあとで bundled claude の spawn が Error: spawn EBADF になる、という内容でした。既存セッションは動き続ける一方で、新しいセッション起動や claude auth status が失敗する、とあります。VSCode を再起動すると fd table がクリアされて直る、というのもこの issue の範囲で確認できる事実です。
ただし、今回の見出しにある EMFILE そのものについては、渡された issue 文面には直接は出てきません。ここで実際に確認できるのは EBADF です。なので、少なくとも今回の一次情報だけでは「EMFILE の原因はこれだ」とは言えません。現時点では、spawn 周りの fd 関連障害として似た系統を疑うところまでです。
手元の検証環境では Node.js のバージョンが次でした。
$ node --version
v16.15.0
環境全体は次のとおりです。
[env_summary]
OS : Linux 3.10.0-1160.76.1.el7.x86_64 (x86_64)
Python : 3.8.13
検証日時 : 2026-09-25T08:51:59+09:00
この情報から言えるのは、少なくとも自分の環境では Node.js v16.15.0 を使っている、という点までです。#62735 の報告環境は Node.js v20.18.0、macOS 26.4.1、arm64 でした。つまり、報告条件そのものはかなり違います。#82254 には環境欄が空で、そこからは再現条件を広げられません。
実際にこの症状に当たったら、まず見るべきなのは「同じプロセス内で spawn が繰り返されていないか」「長時間稼働後にだけ出るか」「既存セッションは生きているか」です。#82254 のように長時間後にだけ起きるなら、fd の蓄積が疑わしいですし、#62735 のようにアップデート直後から出るなら、バージョン間の回帰を疑うのが自然です。ただし、どちらも issue 報告ベースの推測に留まります。
現時点で確認できた範囲では、回避策として実測で裏が取れているのは #82254 の「VSCode あるいは extension host の再起動で直る」だけです。#62735 については、本文に解決策は書かれていません。閉じられていますが、コメントは inactive 扱いで、解決策としては読み取れませんでした。
OS : Linux 3.10.0-1160.76.1.el7.x86_64 (x86_64)
Python : 3.8.13
検証日時 : 2026-09-25T08:51:59+09:00