エラーメッセージリファレンス
例外およびエラーコードの操作方法に関する詳細は、「例外とエラーの処理」を参照してください。
Prisma Clientのエラータイプ
Prisma Clientはさまざまな種類のエラーをスローします。以下に、例外タイプとその文書化されたデータフィールドを示します。
PrismaClientKnownRequestError
Prisma Clientは、クエリエンジンがリクエストに関連する既知のエラー(一意性制約違反など)を返した場合に、PrismaClientKnownRequestError例外をスローします。
| プロパティ | 説明 |
|---|---|
コード | Prisma固有のエラーコード。 |
メタ | エラーに関する追加情報(例:エラーの原因となったフィールド:{ target: [ 'email' ] }) |
メッセージ | エラーコードに関連付けられたエラーメッセージ。 |
clientVersion | Prisma Clientのバージョン(例: 2.19.0) |
PrismaClientUnknownRequestError
Prisma Clientは、クエリエンジンがエラーコードのないリクエストに関連するエラーを返した場合に、PrismaClientUnknownRequestError例外をスローします。
| プロパティ | 説明 |
|---|---|
メッセージ | エラーコードに関連付けられたエラーメッセージ。 |
clientVersion | Prisma Clientのバージョン(例: 2.19.0) |
PrismaClientRustPanicError
基盤となるエンジンがクラッシュし、ゼロ以外の終了コードで終了した場合、Prisma ClientはPrismaClientRustPanicError例外をスローします。この場合、Prisma ClientまたはNodeプロセス全体を再起動する必要があります。
| プロパティ | 説明 |
|---|---|
メッセージ | エラーコードに関連付けられたエラーメッセージ。 |
clientVersion | Prisma Clientのバージョン(例: 2.19.0) |
PrismaClientInitializationError
クエリエンジンの起動時やデータベースへの接続作成時に問題が発生した場合、Prisma ClientはPrismaClientInitializationError例外をスローします。これは以下のいずれかの場合に発生します。
prisma.$connect()が呼び出された場合、または- 最初のクエリが実行された場合
発生する可能性のあるエラーには、以下が含まれます。
- 提供されたデータベースの認証情報が無効です
- 指定されたホスト名とポートでデータベースサーバーが稼働していません
- クエリエンジンのHTTPサーバーがバインドしようとしているポートが既に使われています
- 環境変数が不足しているか、アクセスできません
- 現在のプラットフォーム用のクエリエンジンバイナリが見つかりませんでした (
generatorブロック)
| プロパティ | 説明 |
|---|---|
errorCode | Prisma固有のエラーコード。 |
メッセージ | エラーコードに関連付けられたエラーメッセージ。 |
clientVersion | Prisma Clientのバージョン(例: 2.19.0) |
PrismaClientValidationError
検証に失敗した場合、Prisma ClientはPrismaClientValidationError例外をスローします(例:)
- フィールドの欠落(例:新しいレコードを作成する際に
data: {}プロパティが空の場合) - 誤ったフィールド型が提供された(例:
Booleanフィールドを"Hello, I like cheese and gold!"に設定した場合)
| プロパティ | 説明 |
|---|---|
メッセージ | エラーメッセージ。 |
clientVersion | Prisma Clientのバージョン(例: 2.19.0) |
エラーコード
共通
P1000
"データベースサーバー {database_host} に対する認証に失敗しました。{database_user} に指定されたデータベース認証情報が無効です。{database_host} にあるデータベースサーバーに有効なデータベース認証情報が提供されていることを確認してください。"
P1001
"データベースサーバー {database_host}:{database_port} に到達できません。データベースサーバーが {database_host}:{database_port} で実行されていることを確認してください。"
P1002
"データベースサーバー {database_host}:{database_port} に到達しましたが、タイムアウトしました。もう一度お試しください。データベースサーバーが {database_host}:{database_port} で実行されていることを確認してください。 "
P1003
"データベース {database_file_name} は {database_file_path} に存在しません"
"データベース {database_name}.{database_schema_name} は、データベースサーバー {database_host}:{database_port} に存在しません。"
"データベース {database_name} は、データベースサーバー {database_host}:{database_port} に存在しません。"
P1008
"操作が {time} 後にタイムアウトしました"
P1009
"データベース {database_name} は、データベースサーバー {database_host}:{database_port} に既に存在します"
P1010
"ユーザー {database_user} は、データベース {database_name} へのアクセスを拒否されました"
P1011
"TLS接続を開く際にエラーが発生しました: {message}"
P1012
注: Prisma ORMをバージョン4.0.0以降にアップグレードした後にエラーコードP1012が表示された場合は、バージョン4.0.0アップグレードガイドを参照してください。バージョン4.0.0より前に有効だったスキーマは、バージョン4.0.0以降では無効になる可能性があります。アップグレードガイドには、スキーマを有効にするための更新方法が記載されています。
"{full_error}"
P1012の可能性のあるエラーメッセージ
- "引数
{}が不足しています。" - "関数
{}は引数を取りますが、受け取った引数は." - "属性
@{}に引数{}が不足しています。" - "データソースブロック
{}に引数{}が不足しています。" - "ジェネレーターブロック
{}に引数{}が不足しています。" - "属性
@{}の解析エラー" - "属性
@{}が2回定義されています。" - "データベース名
{}を持つモデルは定義できませんでした。同じ名前の別のモデルが存在するためです:{}" - "
{}は予約済みのスカラ型名であるため、使用できません。" - その
{}は定義できません。なぜなら、同じ名前のものが既に存在するためです。" - "キー
{}は既に." - "引数
{}は既に名前なし引数として指定されています。" - "引数
{}は既に指定されています。" - "そのような引数はありません。""
- "フィールド
{}はモデル{}に既に定義されています。" - "モデル
{}のフィールド{}はリストにできません。現在のコネクタはプリミティブ型のリストをサポートしていません。" - "インデックス名
{}が複数回宣言されています。現在のコネクタでは、インデックス名はグローバルに一意である必要があります。" - "値
{}は列挙型{}に既に定義されています。" - "不明な属性:
@{}。" - "不明な関数:
{}。" - "不明なデータソースプロバイダー:
{}。" - "shadowDatabaseUrl がデータソース
{}のurlと同じです。シャドウデータベースとして別のデータベースを指定してください。" - "プレビュー機能
{}は不明です。以下のいずれかを期待しました:" - "
{}は以下の有効な値ではありません." - "型
{}は組み込み型でもなく、他のモデル、カスタム型、または列挙型を参照していません。" - "型
{}は組み込み型ではありません。" - "予期しないトークン。以下のいずれかを期待しました:"
- "環境変数が見つかりません."
- "期待されるのは値ですが、受け取ったのは値
{}です。" - "期待されるのは値ですが、
{}の解析中に失敗しました." - "モデル
{}の検証エラー" - "モデル
{}のフィールド{}の検証エラー" - "データソース
{datasource}の検証エラー: {message}" - "列挙型
{}の検証エラー" - 検証エラー"
P1013
"提供されたデータベース文字列が無効です。{details}"
P1014
"モデル {model} の基盤となる {kind} が存在しません。"
P1015
"Prismaスキーマで、お使いのデータベースのバージョンでサポートされていない機能が使用されています。
データベースバージョン: {database_version}
エラー
{errors}"
P1016
"生クエリのパラメータ数が正しくありません。期待値: {expected}、実際: {actual}。"
P1017
"サーバーが接続を閉じました。"
Prisma Client (クエリエンジン)
P2000
"列に指定された値が、その列の型に対して長すぎます。列: {column_name}"
P2001
"where条件 ({model_name}.{argument_name} = {argument_value}) で検索されたレコードが存在しません"
P2002
"{constraint} で一意性制約違反が発生しました"
P2003
"フィールド {field_name} で外部キー制約違反が発生しました"
P2004
"データベースで制約違反が発生しました: {database_error}"
P2005
"フィールド {field_name} のデータベースに格納されている値 {field_value} は、そのフィールドの型に対して無効です"
P2006
"{model_name} フィールド {field_name} に提供された値 {field_value} は無効です"
P2007
"データ検証エラー {database_error}"
P2008
"クエリ {query_parsing_error} の解析に失敗しました。位置: {query_position}"
P2009
"クエリの検証に失敗しました: {query_validation_error} 位置: {query_position}"
P2010
"生クエリが失敗しました。コード: {code}。メッセージ: {message}"
P2011
"{constraint} でNULL制約違反が発生しました"
P2012
"{path} に必須の値がありません"
P2013
"{object_name} のフィールド {field_name} に必須の引数 {argument_name} がありません。"
P2014
"変更しようとしている内容は、{model_a_name} モデルと {model_b_name} モデル間の必須のリレーション '{relation_name}' に違反します。"
P2015
"関連レコードが見つかりませんでした。{details}"
P2016
"クエリ解釈エラー。{details}"
P2017
"{parent_name} モデルと {child_name} モデル間のリレーション {relation_name} のレコードが接続されていません。"
P2018
"必要な接続レコードが見つかりませんでした。{details}"
P2019
"入力エラー。{details}"
P2020
"その型の値が範囲外です。{details}"
P2021
"テーブル {table} は現在のデータベースに存在しません。"
P2022
"列 {column} は現在のデータベースに存在しません。"
P2023
"一貫性のない列データ: {message}"
P2024
"接続プールからの新しい接続の取得がタイムアウトしました。(詳細情報: http://pris.ly/d/connection-pool (現在の接続プールタイムアウト: {timeout}、接続制限: {connection_limit})"
P2025
"1つ以上の必須レコードが見つからなかったため、操作に失敗しました。{cause}"
P2026
"現在のデータベースプロバイダは、クエリが使用した機能をサポートしていません: {feature}"
P2027
"クエリ実行中にデータベースで複数のエラーが発生しました: {errors}"
P2028
"トランザクションAPIエラー: {error}"
P2029
"クエリパラメータ制限超過エラー: {message}"
P2030
"検索に使用できる全文検索インデックスが見つかりません。スキーマに @@fulltext([Fields...]) を追加してみてください"
P2031
"Prismaはトランザクションを実行する必要があり、そのためにはMongoDBサーバーがレプリカセットとして実行されている必要があります。詳細はこちら: https://pris.ly/d/mongodb-replica-set"
P2033
"クエリで使用された数値が64ビット符号付き整数に収まりません。大きな整数を保存しようとしている場合は、BigIntをフィールド型として使用することを検討してください"
P2034
"書き込み競合またはデッドロックによりトランザクションが失敗しました。トランザクションを再試行してください"
P2035
"データベースでのアサーション違反: {database_error}"
P2036
"外部コネクタでエラーが発生しました (ID: {id})"
P2037
"開いているデータベース接続が多すぎます: {message}"
Prisma Migrate (スキーマエンジン)
スキーマエンジンは以前、マイグレーションエンジンと呼ばれていました。この変更はバージョン5.0.0で導入されました。
P3000
"データベースの作成に失敗しました: {database_error}"
P3001
"破壊的な変更およびデータ損失の可能性があるマイグレーション: {migration_engine_destructive_details}"
P3002
"試行されたマイグレーションはロールバックされました: {database_error}"
P3003
"マイグレーションの形式が変更され、保存されたマイグレーションは無効になりました。この問題を解決するには、次の手順に従ってください: https://pris.ly/d/migrate"
P3004
"データベース {database_name} はシステムデータベースであり、prisma migrateで変更すべきではありません。別のデータベースに接続してください。"
P3005
"データベーススキーマは空ではありません。既存のプロダクションデータベースのベースライン設定方法については、こちらを参照してください: https://pris.ly/d/migrate-baseline"
P3006
"マイグレーション {migration_name} はシャドウデータベースにクリーンに適用されませんでした。
{error_code}エラー
{inner_error}"
P3007
"要求されたプレビュー機能の一部は、まだスキーマエンジンで許可されていません。マイグレーションを使用する前に、データモデルからそれらを削除してください。(ブロック済み: {list_of_blocked_features})"
P3008
"マイグレーション {migration_name} はデータベースに既に適用済みとして記録されています。"
P3009
"migrateはターゲットデータベースに失敗したマイグレーションを検出しました。新しいマイグレーションは適用されません。プロダクションデータベースでのマイグレーション問題の解決方法については、こちらを参照してください: https://pris.ly/d/migrate-resolve
{details}"
P3010
"マイグレーション名が長すぎます。200文字(バイト)より長くすることはできません。"
P3011
"マイグレーション {migration_name} はデータベースに適用されたことがないため、ロールバックできません。ヒント: マイグレーション名をすべて渡しましたか?(例: "20201207184859_initial_migration")"
P3012
"マイグレーション {migration_name} は失敗状態ではないため、ロールバックできません。"
P3013
"migrateではデータソースプロバイダー配列はサポートされなくなりました。データソースを単一のプロバイダーを使用するように変更してください。詳細はこちら: https://pris.ly/multi-provider-deprecation"
P3014
"Prisma Migrateがシャドウデータベースを作成できませんでした。データベースユーザーがデータベース作成の権限を持っていることを確認してください。シャドウデータベース(と回避策)に関する詳細はこちら: https://pris.ly/d/migrate-shadow。
元のエラー: {error_code}
{inner_error}"
P3015
"マイグレーションファイル {migration_file_path} が見つかりませんでした。ディレクトリを削除するか、マイグレーションファイルを復元してください。"
P3016
"データベースのリセットのフォールバックメソッドが失敗しました。つまり、Migrateがデータベースを完全にクリーンアップできませんでした。元のエラー: {error_code}"
{inner_error}"
P3017
"マイグレーション {migration_name} が見つかりませんでした。マイグレーションが存在し、ディレクトリのフルネームを含んでいることを確認してください。(例: "20201207184859_initial_migration")"
P3018
"マイグレーションの適用に失敗しました。このエラーが解決されるまで、新しいマイグレーションは適用できません。プロダクションデータベースでのマイグレーション問題の解決方法については、こちらを参照してください: https://pris.ly/d/migrate-resolve
マイグレーション名: {migration_name}
データベースエラーコード: {database_error_code}
データベースエラー
{database_error} "
P3019
"スキーマで指定されたデータソースプロバイダー {provider} が、migration_lock.toml で指定された {expected_provider} と一致しません。現在のマイグレーションディレクトリを削除し、prisma migrate dev で新しいマイグレーション履歴を開始してください。詳細はこちら: https://pris.ly/d/migrate-provider-switch"
P3020
"Azure SQLではシャドウデータベースの自動作成が無効になっています。shadowDatabaseUrlデータソース属性を使用してシャドウデータベースを設定してください。
詳細についてはドキュメントページを参照してください: https://pris.ly/d/migrate-shadow"
P3021
"このデータベースでは外部キーを作成できません。その対処法については、こちらをご覧ください: https://pris.ly/d/migrate-no-foreign-keys"
P3022
"このデータベースではDDL(データ定義言語)SQLステートメントの直接実行が無効になっています。その対処法については、こちらで詳細をご覧ください: https://pris.ly/d/migrate-no-direct-ddl"
prisma db pull
P4000
"イントロスペクション操作でスキーマファイルを生成できませんでした: {introspection_error}"
P4001
"イントロスペクションされたデータベースは空でした。"
P4002
"イントロスペクションされたデータベースのスキーマに一貫性がありませんでした: {explanation}"
Prisma Accelerate
Prisma Accelerate関連のエラーは、P5011を除いてP6xxxから始まります。
P6000 (サーバーエラー)
その他のすべてのエラーを捕捉する汎用エラー。
P6001 (無効なデータソース)
URLが不正です。例えば、prisma://プロトコルを使用していません。
P6002 (不正な認証)
接続文字列のAPIキーが無効です。
P6003 (プラン制限に到達)
現在のプランに含まれる使用量が超過しました。これは無料プランでのみ発生します。
P6004 (クエリタイムアウト)
Accelerateのグローバルタイムアウトを超過しました。制限はこちらで確認できます。
詳細については、トラブルシューティングガイドも参照してください。
P6005 (無効なパラメータ)
ユーザーが無効なパラメータを供給しました。現在のところ、トランザクションメソッドにのみ関連します。例えば、タイムアウトを高く設定しすぎた場合などです。制限はこちらで確認できます。
P6006 (バージョン未サポート)
選択されたPrismaバージョンはAccelerateと互換性がありません。これは、ユーザーが当社が時折削除する不安定な開発バージョンを使用している場合に発生する可能性があります。
P6008 (接続エラー|エンジン起動エラー)
エンジンの起動に失敗しました。例えば、データベースへの接続を確立できませんでした。
詳細については、トラブルシューティングガイドも参照してください。
P6009 (応答サイズ制限超過)
Accelerateのグローバル応答サイズ制限を超過しました。制限はこちらで確認できます。
詳細については、トラブルシューティングガイドも参照してください。
P6010 (プロジェクト無効エラー)
Accelerateプロジェクトが無効になっています。再度有効にして使用してください。
P5011 (リクエストが多すぎます)
このエラーは、リクエスト量が超過したことを示します。バックオフ戦略を実装して、後でもう一度試してください。予期される高負荷のワークロードに関する支援については、サポートにお問い合わせください。