こんにちは。ビジネスアクセラレーション事業部の古川です。
この記事では、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.jsonとpackage-lock.jsonの内容が一致していない、というエラーです。Amplifyはビルド時にnpm ciというコマンドを使います。これは「package-lock.jsonと完全に一致していないとエラーにする」厳密なコマンドのため、少しでもズレがあると失敗してしまいます。
解決法① package-lock.json の再作成
ローカルでファイルを作り直し、再度プッシュします。下記コマンドを順番に実行します。
rm -rf node_modules package-lock.json
npm install
解決法② npm ciを npm 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.yml の node -v の下に、下記2行を足すことでバージョンを変更できます。赤文字の部分は自身のローカルのバージョンに合わせて変更してください。
nvm install 22
nvm use 22

2026年8月現在、AWS Amplify のサポートしているバージョンは、20、22、24のみとなりますのでご注意ください。(参考:公式ドキュメント)
まとめ
この記事では、AWS Amplifyのデプロイエラー解決法について解説しました。参考になりましたら幸いです!