エラーコードについて

このページでは、発生する可能性のあるエラーコードと、各エラーの修正方法について説明します。

DEADLINE_EXCEEDED

次の要因により、DEADLINE_EXCEEDED エラーが増加する可能性があります。

  • レイテンシが増大すると、オペレーションが完了するのにデッドラインよりも長くかかることがあります(デフォルトでは 60 秒)。
DEADLINE_EXCEEDED

A deadline was exceeded on the server.

この問題を解決するには、レイテンシのトラブルシューティング ガイドをご覧ください。

ABORTED

次の状況では、ABORTED エラーが増加する可能性があります。

  • 1 秒間に受信する更新が多すぎるドキュメント。
  • 重複しているトランザクションの競合。
  • 500-50-5 ルールを超えるトラフィック、またはホットスポットが発生しているトラフィックの増加。
ABORTED

Too much contention on these datastore entities. Please try again.

または

ABORTED

Aborted due to cross-transaction contention. This occurs when multiple
transactions attempt to access the same data, requiring Firestore to abort at
least one in order to enforce serializability.

この問題を解決するには:

  • トラフィックが急増する場合、Firestore は需要の増加に対応するために自動的にスケーリングを試みます。Firestore がスケーリングすると、レイテンシが減少し始めます。
  • ホットスポットにより、Firestore のスケールアップが制限されます。ホットスポットを特定するには、スケーリングの設計をご覧ください。
  • トランザクションでのデータ競合とトランザクションの使用を確認します。
  • 個々のドキュメントへの書き込みレートを下げます。

RESOURCE_EXHAUSTED

次の状況では、RESOURCE_EXHAUSTED エラーが発生する可能性があります。

RESOURCE_EXHAUSTED

Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space.

この問題を解決するには:

INVALID_ARGUMENT

次の状況では、INVALID_ARGUMENT エラーが発生する可能性があります。

  • indexed フィールド値が 1,500 バイトを超えるドキュメントを commit しようとしています。この上限は、フィールド値の UTF-8 エンコードに適用されます。
  • 1,048,487 バイト(1 MiB - 89 バイト)を超えるインデックスなしフィールド値を含むドキュメントを commit しようとしています。この制限は、ドキュメント内のフィールド値の合計に適用されます。たとえば、それぞれが 256 KiB である 4 つのプロパティは、上限を超えています。

フィールド値の上限は、1,500 バイト(インデックス付き)と 1,048,487 バイト(インデックスなし)です。この上限を超えることはできません。また、調整可能な割り当てではありません。

INVALID_ARGUMENT: The value of property field-name is longer than 1500 bytes

または

INVALID_ARGUMENT: The value of property field_name is longer than 1048487 bytes

この問題を解決するには:

  • インデックス付きのフィールド値の場合は、フィールドを複数のフィールドに分割します。可能であれば、インデックスなしのフィールドを作成し、インデックスに登録する必要のないデータを、インデックスなしのフィールドに移動します。
  • インデックスなしのフィールド値については、フィールドを複数のフィールドに分割するか、フィールド値の圧縮を実装します。