Vercel の 400 エラー:原因と解決策
エラーの概要 Vercel の 400 エラーは、Vercel API へ送信されたリクエストの形式または内容に不正がある場合に発生します。これはクライアント側の誤りを示す HTTP ステータスコードで、デプロイ時や API 呼び出し時に頻繁に遭遇します。Vercel CLI を使用したデプロイ、または直接 API を呼び出している場合に特に注意が必要です。 実際のエラーメッセージ例 { "error": { "code": "BAD_REQUEST", "message": "Invalid request body" } } Error: Bad Request (400) POST /v13/deployments よくある原因と解決手順 原因1:vercel.json の設定に誤りがある vercel.json は、Vercel のデプロイ設定を定義する重要なファイルです。JSON の形式エラーや、キーの綴り間違い、不正な値の型が 400 エラーを引き起こします。例えば、環境変数の設定項目のキー名を間違えたり、配列であるべき値をオブジェクトとして定義したりすると、API リクエストが拒否されます。 Before(エラーが起きるコード): { "buildCommand": "npm run build", "installCommand": "npm install", "outputDirectory": "dist", "env": { "DATABASE_URL": "postgresql://..." }, "enviroments": { "production": { "DATABASE_URL": "postgresql://prod..." } } } After(修正後): { "buildCommand": "npm run build", "installCommand": "npm install", "outputDirectory": "dist", "env": { "DATABASE_URL": "postgresql://..." }, "envs": [ { "key": "production", "value": { "DATABASE_URL": "postgresql://prod..." } } ] } 原因2:API リクエストの必須パラメーターが欠けている Vercel API を直接呼び出す場合、認証トークンやプロジェクト ID、デプロイ対象のファイル情報など、必須パラメーターの不足が 400 エラーを引き起こします。特にカスタムスクリプトや CI/CD パイプライン(継続的インテグレーション・デプロイメント)から自動デプロイする場合、リクエストボディの構造を厳密に確認する必要があります。 ...
{
"error": {
"code": "BAD_REQUEST",