5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amplify Gen2なにもしてないのにデプロイできんくなった

Posted at

Amplify Gen2でホスティングしていた際に発生したエラーについての備忘録です。

Amplify Gen2でホスティング中に遭遇したエラー

開発中に突然、以下のようなエラーでデプロイに失敗するようになりました。

> build
> remix vite:build

 node:internal/errors:496
 ErrorCaptureStackTrace(err);
 ^
 Error: ENOSPC: System limit for number of file watchers reached, watch

使用環境

  • Amplify Gen2
  • Remix:2.15.1 (SPA Mode)
  • Node.js: v18

原因

このエラー「ENOSPC: System limit for number of file watchers reached, watch」は、Linuxシステムでinotifyウォッチャーの数が上限に達した場合に発生します。ビルドプロセス中(特にViteを使用したRemixのフロントエンドビルド時)に、システムが監視できるファイル数の上限を超えてしまったことが原因のようです。

解決策

Github記事のように、以下の環境変数を設定することで解決しました。

CHOKIDAR_USEPOLLING=true

Amplifyコンソール上の設定

image.png

この環境変数を設定したところ、無事にビルドが通るようになりました!

CHOKIDAR_USEPOLLINGの影響

CHOKIDAR_USEPOLLINGはファイル監視ライブラリである「Chokidar」の動作を制御する環境変数です。
trueに設定すると、ファイルの変更を検出するためにポーリング方式(定期的にファイルの状態をチェックする方式)を使用するようになります。

RemixやViteではホットリロード(コード修正後即座に画面をリロード)をサポートしており、デフォルトではファイルシステムのイベント通知(fs.watch)を使用しています。

ビルドプロセスにおいてポーリングに切り替えても問題はないと思うので、しばらくはこの設定で運用してみようと思いますが、ご自身の環境に合わせて適切に設定を行ってください。

さいごに

今回は、Amplify Gen2ホスティング時に発生したエラー
Error: ENOSPC: System limit for number of file watchers reached, watch
に対する備忘録を書かせていただきました。

どなたかのお役に立てると幸いです。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?