🐾

Next.js「TypeError: fetch failed」まとめ

2024/07/19に公開

はじめに

こんにちは、Takeです。都内の自社開発企業でエンジニアとして働いています。

エラー内容

 ⨯ TypeError: fetch failed
    at async fetchCreatives (./src/features/creative/logics/fetchCreatives.ts:16:17)
    at async Page (page.tsx:16:27)
digest: "111111111"
Cause: AggregateError [ECONNREFUSED]: 

そして、エディタには以下のエラーメッセージが表示されました。

Could not open fetchCreatives.ts in the editor.

To set up the editor integration, add something like REACT_EDITOR=atom to the .env.local file in your project folder and restart the development server.

https://hisuiblog.com/nextjs-typeerror-fetch-failed/

エラーの原因と考えられるもの

1. ネットワーク接続の問題

fetch failedエラーは、APIリクエストが失敗した場合に発生します。これには、以下のようなネットワーク接続の問題が含まれます。

  • サーバーがダウンしている
  • 指定したURLが間違っている
  • ネットワークの接続が遮断されている

2. URLの誤り

http://127.0.0.1:3003/ への変更を試みます。

https://github.com/vercel/next.js/issues/44062

3. サーバー設定の問題

APIサーバーが正しく設定されていない、もしくは起動していない可能性があります。
Dockerコンテナを使用している場合は、Dockerコンテナが起動しているか再度確認しましょう。(結構、コンテナの起動し忘れが割とあります...)

https://zenn.dev/take_tech/articles/4ad36b7ed78ad7

https://qiita.com/tkms13/items/234d152dd9ccf49ce2f4

4. AggregateError

AggregateErrorは複数のエラーをまとめて報告する際に使用されます。今回は、ECONNREFUSED(接続拒否)が原因のようです。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/AggregateError

解決のためのステップ

1. サーバーの状態確認

まず、APIサーバーが正常に動作しているか確認します。サーバーが起動しているか、エラーログが出力されていないかをチェックします。

2. URLの再確認

APIのエンドポイントURLが正しいか再確認します。ローカル環境で動作している場合、ポート番号が正しいかも確認します。

const response = await fetch('http://127.0.0.1:3003/api/endpoint');

https://qiita.com/RYA234/items/1585418b978a12d0fbdb

3. エディタの設定確認

エディタの設定が正しいか確認し、.env.localファイルに以下のように追加します。

REACT_EDITOR=atom

その後、サーバーを再起動します。

yarn dev

最後に

ここまで読んでいただきありがとうございました!
今回の記事が良かったと思ったらぜひ「いいね」を押していただけると嬉しいです 🎉

noteでも記事を執筆していますので、ぜひチェックしてみてください。
https://note.com/take_lifelog/n/n58df7ce7af6f

他にもこのようなことについて記載しているのでお読みいただければ幸いです。

https://zenn.dev/take_tech/articles/275e5f4242973d

https://zenn.dev/take_tech/articles/374817f256ec9d

最後までお読みいただき、誠にありがとうございました!

Discussion