Supabase の 400 エラー:原因と解決策
エラーの概要 Supabase の 400 エラーは、API へのリクエストの形式または内容に誤りがあることを示します。PostgREST クエリのフィルタ構文の誤り、必須ヘッダーの不足、認証 API パラメータの型ミスなど、クライアント側の問題が主な原因です。このエラーが返された場合、リクエスト自体を修正する必要があり、サーバーの状態ではなく送信側の実装を見直すべき合図です。 実際のエラーメッセージ例 Supabase JavaScript クライアントでの例: { "error": "400 Bad Request", "message": "Invalid filter: Column 'user_id' must use one of the following operators: eq, neq, gt, gte, lt, lte, like, ilike, is, in, cs, cd, sl, sr, nxl, nxr, adj, not, or, and", "status": 400 } cURL での直接リクエスト例: curl -X GET "https://<your-project>.supabase.co/rest/v1/users?status=eq.active&age=gt.25" \ -H "apikey: <your-api-key>" \ -H "Content-Type: application/json" 上記のように正しいフィルタ構文を使用しない場合、400 が返ります。 よくある原因と解決手順 原因 1:PostgREST フィルタ構文の誤り Supabase は PostgreSQL の高度なフィルタリング機能を提供していますが、正しい演算子と記号を使わなければ 400 エラーが返ります。> や < などの SQL 記号をそのままクエリに含めると、URL エンコーディングの問題やパーサーエラーが発生します。 ...
{
"error": "400 Bad Request",
"message": "Invalid filter: Column 'user_id' must use one of the following operators: eq, neq, gt, gte, lt, lte, like, ilike, is, in, cs, cd, sl, sr, nxl, nxr, adj, not, or, and",