こんにちは。ビジネスアクセラレーション事業部の古川です。
この記事では、AWS Amplify で私がデプロイエラーになった際に試した解決法を3つ紹介します。

エラーログの確認方法

デプロイ履歴から、失敗したデプロイを選択して左側のチェックをつけます。

上にスクロールし、ビルド時間の書いてあるタブを開くことでログを確認できます。

失敗の直接の原因は、たいていログの末尾に書かれています。全てコピーしてAIに投げ、エラー文を抜き出してもらうと早いです。

 

npm ci でロックファイルの不一致エラー 解決方法

実際のエラーメッセージ
npm error `npm ci` can only install packages when your package.
json and package-lock.json or npm-shrinkwrap.json are in sync.
Please update your lock file with `npm install` before continuing.

 

エラーの原因
これは、package.jsonpackage-lock.jsonの内容が一致していない、というエラーです。Amplifyはビルド時にnpm ciというコマンドを使います。これは「package-lock.jsonと完全に一致していないとエラーにする」厳密なコマンドのため、少しでもズレがあると失敗してしまいます。

 

解決法① package-lock.json の再作成
ローカルでファイルを作り直し、再度プッシュします。下記コマンドを順番に実行します。
rm -rf node_modules package-lock.json
npm install

解決法② npm cinpm installに変更する
npm ciが「完全一致でないとエラー」なのに対し、npm installは「多少のズレは自動で吸収して進めてくれる」コマンドです。そこで、amplify.ymlのビルドコマンドを書き換えました。私の場合は、こちらの手順で解決しました。

1.左上の表記を確認し、mainデプロイの階層から、notesapp の階層へ戻ります。

2.左側のタブから、「ホスティング」>「ビルドの設定」を開きます。

3.「amplify.yml」 の一部を、npm ciからnpm installに書き換えて保存します。

解決法③ Node.jsのバージョンを合わせる
ローカルのNode.jsのバージョンと、Amplifyのビルド環境のNode.jsのバージョンが違うと、生成されるpackage-lock.jsonの内容にズレが出てしまい、npm ci失敗する原因となります。

1.ローカルのバージョンを確認する。
node -v
v24.18.0 のように表示されます。これが自分のパソコンのNode.jsのバージョンです。

2.Amplify のバージョンを確認する
Amplify側のバージョンは、解決法②で変更したamplify.ymlを編集して確認します。「ホスティング」>「ビルドの設定」からamplify.ymlを開き、npm install の手前にnode -vを追加します

保存して再デプロイし、ログを確認すると、下記のように表示されます。
Executing command: node -v
v22.18.0

違った場合は、AWS Amplifyのバージョンを変更して合わせます。
amplify.ymlnode -v の下に、下記2行を足すことでバージョンを変更できます。赤文字の部分は自身のローカルのバージョンに合わせて変更してください。

nvm install 22
nvm use 22

2026年8月現在、AWS Amplify のサポートしているバージョンは、20、22、24のみとなりますのでご注意ください。(参考:公式ドキュメント

まとめ

この記事では、AWS Amplifyのデプロイエラー解決法について解説しました。参考になりましたら幸いです!