📘

Amplify:We failed to validate the deploy-manifest.jsonエラーを一直したメモ

に公開

Nuxt + AWS Amplify で突然出た「We failed to validate the deploy-manifest.json」エラーを一瞬で直した話

Nuxt プロジェクトを Amplify にデプロイしていたら、ある日突然ビルドが落ちてこんなエラーが出ました。

CustomerError: We failed to validate the deploy-manifest.json file found in your build output directory

原因

AWS Amplify 側で Node.js 18 のサポートが終了していたのが原因でした。
Amplify の build ログを見ると、runtime が nodejs18.x のままになっており、これを直す必要があります。

解決手順

  1. 成功していた過去のデプロイから deploy-manifest.json を取得

    Amplify の画面で「Download artifacts」から zip をダウンロードし、その中にある deploy-manifest.json を見つけます。

  2. deploy-manifest.json の runtime を修正

    "computeResources": {
      "runtime": "nodejs20.x"
    }
    
  3. 修正版をリポジトリのルートに追加してコミット

    git add deploy-manifest.json
    git commit -m "fix: update runtime to nodejs20.x"
    
  4. Amplify の amplify.yml を編集

    Amplify コンソールの「Build settings」で以下のように変更します。

    build:
      commands:
        - npm run build
        - mkdir -p .amplify-hosting
        - cp deploy-manifest.json .amplify-hosting/deploy-manifest.json
    

これだけで再デプロイが通りました🎉
Node.js 18 の終了タイミングに合わせて、Amplify の runtime も自動で切り替わらない点には注意が必要です。

Discussion