
「自分だけビルドが落ちる」を追いかけたら、原因はコードではなくルーターだった
「昨日まで普通に通っていたビルドが、今日から自分のPCだけ最後で固まる」。同じブランチで同僚はすんなり成功。コードは1行も変えていない——。原因にたどり着くまで、エラーログの“嘘”に何度も惑わされました。犯人は意外すぎる場所、今日替えたばかりのWi-Fiルーター。同じ沼にハマった人のために、切り分けの全手順を残します。
Next.jsのビルドが自分だけ失敗する。犯人はWi-Fiルーターだった
ある日、いつも通り next build を実行すると、
Failed to build /(user)/too-many-requests/page
because it took more than 60 seconds.というエラーが出ました。
コンパイルOK、TypeScriptもOK、なのに最後だけ失敗します。しかも毎回同じ場所。
export const dynamic = "force-static";最初は当然、このファイルを疑いました。
でも、おかしい
同僚は同じブランチで通る
該当コードは長らく更新されていない
失敗するのは私だけ
コードが原因なら全員落ちるはずです。
※著者は在宅勤務です。同僚とネットワークが異なります
罠①:「このファイルが悪い」は誤解だった
問題のページは、ただの429エラー画面。
fetchもasyncもない、ピュアなコンポーネント。60秒もかからんだろぉぉぉ
調べてみると、force-static によってビルド時に親レイアウトが実行され、その中のAPI通信で止まっていました。
エラーメッセージが指していた場所は、「原因」ではなく「最後に実行された場所」でした。
罠②:「バックエンドが遅い」も外れ
念のため curl で確認。curl https://example.com
HTTP 200 | total=0.05s爆速200
ネットワークも問題なさそう...
タイムアウトを300秒に上げて再ビルドすると、
UND_ERR_HEADERS_TIMEOUTcurlは返るのに
ビルド中のNodeだけが300秒待って死ぬ。これは...
分かるわけなくclaude codeに聞く。
誰かがアイドル接続を裏で殺していた
「①接続 → ②90秒アイドル → ③再利用」を試す
req#1 fresh OK 200 54ms ← 新規接続:正常
req#2 reused-after-idle OK 200 47ms
req#3 immediate ERR 110660ms ECONNRESET ← 再利用接続:110秒ハング後リセット今日Wi-Fiルーターを交換したことを思い出す

試しにスマホのテザリングへ切り替えて再ビルド
Build successful一発成功!
原因はBuffaloルーターの「ネット脅威ブロッカー2 プレミアム」
私の環境では、この機能がNext.jsビルド中の通信に影響していたようです。
コードは終始、無実でした。
ルーターは Buffalo WXR9300BE6P
ネット脅威ブロッカー2プレミアムがデフォルトON。これがアイドルなTCP接続を切っていました。
ルーターの管理画面での手順:
詳細設定 → ネット脅威ブロッカー2
セキュリティー基本設定
[悪質サイトブロック・情報漏洩ブロック]の「使用する」のチェックを外す
設定を押す
これで自宅Wi-Fiのまま、ビルドが通るようになりました。

同じビルドエラーで悩む人へ:私が学んだこと
エラー箇所=原因とは限らない
自分だけ失敗するなら環境差分を疑う
テザリングは最強の切り分け方法
コードが無実なこともある
数時間コードを追いかけた結果、犯人はWi-Fiルーターでした。
「自分だけビルドが通らない」というときは、コードだけでなくネットワーク環境も疑ってみると意外と早く解決するかもしれません。
よくある質問
この商品について質問がありますか?コミュニティや専門家に質問してください。
