For rapid traffic increases, Datastore mode attempts to automatically
scale to meet the increased demand. When Datastore mode
scales, latency begins to decrease.
Hot-spots (high read, write, and delete rates to a narrow entity range)
limit the ability of Datastore mode to scale. Review
designing for scale
and identify hot-spots in your application.
Contention, either from updating a single entity too
frequently or from transactions.
For example, queries with multiple equality filters (==)
but not backed by composite indexes can result in slow merge-join queries.
To improve performance, add composite indexes for these queries,
see
Optimizing indexes.
read This greatly affects
operations that list kinds in a database.
If latency is caused by too many recent deletes,
the issue should automatically resolve after some time. If the issue does
not resolve, contact support.
The following situations can increase ABORTED errors:
An entity receiving too many updates per second.
Contention from overlapping transactions.
Traffic increases that exceed the 500-50-5 rule or encounter hot-spots.
ABORTED
Too much contention on these datastore entities. Please try again.
Or
ABORTED
Aborted due to cross-transaction contention. This occurs when multiple
transactions attempt to access the same data, requiring Datastore mode
to abort at least one in order to enforce serializability.
To resolve this issue:
For rapid traffic increases, Datastore mode attempts to automatically
scale to meet the increased demand. When Datastore mode
scales, latency begins to decrease.
Hot-spots limit the ability of Datastore mode to scale up, review
designing for scale to identify hot-spots.
The following situations can cause INVALID_ARGUMENT errors:
Attempting to commit an entity with an indexed property value greater than
1500 bytes. This limit applies to the UTF-8 encoding of the property value.
Attempting to commit an entity with un-indexed property values greater
than 1,048,487 bytes (1 MiB - 89 bytes). This limit applies to the sum
of the property values in an entity. For example, four properties of 256 KiB
each exceed the limit.
1,500 bytes (indexed) and 1,048,487 bytes (un-indexed) are
limits for property values. You cannot
exceed these limits and they are not quotas that can be adjusted.
INVALID_ARGUMENT: The value of property property-name is longer than 1500 bytes
or
INVALID_ARGUMENT: The value of property property_name is longer than 1048487 bytes
To resolve this issue:
For indexed property values, split the
property into multiple properties. If possible, create an un-indexed property
and move data that doesn't need to be indexed into the un-indexed
property.
For un-indexed property values, split the property into multiple properties
or implement compression for the property value.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThis guide helps resolve issues with Firestore in Datastore mode, focusing on latency and error codes.\u003c/p\u003e\n"],["\u003cp\u003eIncreased latency can be caused by high traffic, contention, slow queries, large reads, recent deletes, or index fanout, each with specific resolutions.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eABORTED\u003c/code\u003e errors often result from too many updates to a single entity, contention from overlapping transactions, or traffic exceeding the 500-50-5 rule, with solutions that involve scaling and reducing write rates.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eRESOURCE_EXHAUSTED\u003c/code\u003e errors are triggered by exceeding the free tier quota without billing enabled, which can be resolved by waiting for the daily reset or enabling billing.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eINVALID_ARGUMENT\u003c/code\u003e errors arise from exceeding property value limits for indexed or un-indexed values, and require splitting the property into multiple properties or implementing compression.\u003c/p\u003e\n"]]],[],null,["# Troubleshooting\n\nThis page shows you how to resolve issues with Firestore in Datastore mode.\n\nLatency\n-------\n\nThe table below describes possible causes of increased latency:\n\nError Codes\n-----------\n\nThis section lists issues that you might encounter and provides suggestions for\nhow to fix each of them.\n\n### DEADLINE_EXCEEDED\n\n```\nDEADLINE_EXCEEDED\n\nA deadline was exceeded on the server.\n```\n\nTo resolve this issue, see the [guide to troubleshooting latency](#latency).\n\n### ABORTED\n\nThe following situations can increase `ABORTED` errors:\n\n- An entity receiving too many updates per second.\n- Contention from overlapping transactions.\n- Traffic increases that exceed the 500-50-5 rule or encounter hot-spots.\n\n```\nABORTED\n\nToo much contention on these datastore entities. Please try again.\n```\n\nOr \n\n```\nABORTED\n\nAborted due to cross-transaction contention. This occurs when multiple\ntransactions attempt to access the same data, requiring Datastore mode\nto abort at least one in order to enforce serializability.\n```\n\nTo resolve this issue:\n\n- For rapid traffic increases, Datastore mode attempts to automatically scale to meet the increased demand. When Datastore mode scales, latency begins to decrease.\n- Hot-spots limit the ability of Datastore mode to scale up, review [designing for scale](./best-practices#designing_for_scale) to identify hot-spots.\n- Review [data contention in transactions](/datastore/docs/concepts/transactions#isolation_and_consistency) and your usage of transactions.\n- Reduce the write rate to individual entities.\n\n### RESOURCE_EXHAUSTED\n\nThe following situations can lead to `RESOURCE_EXHAUSTED` errors:\n\nYou exceeded the [free tier quota](/datastore/pricing#free_quota) and billing is not enabled\nfor your project. \n\n```\nRESOURCE_EXHAUSTED\n\nSome resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space.\n```\n\nTo resolve this issue:\n\n- Wait for the daily reset of your free tier quota or [enable billing for\n your project](/billing/docs/how-to/modify-project#enable_billing_for_a_project).\n\n### INVALID_ARGUMENT\n\nThe following situations can cause `INVALID_ARGUMENT` errors:\n\n- Attempting to commit an entity with an **indexed** property value greater than 1500 bytes. This limit applies to the UTF-8 encoding of the property value.\n- Attempting to commit an entity with **un-indexed** property values greater than 1,048,487 bytes (1 MiB - 89 bytes). This limit applies to the sum of the property values in an entity. For example, four properties of 256 KiB each exceed the limit.\n\n1,500 bytes (indexed) and 1,048,487 bytes (un-indexed) are\n[limits](/datastore/docs/concepts/limits) for property values. You cannot\nexceed these limits and they are not quotas that can be adjusted. \n\n```\nINVALID_ARGUMENT: The value of property property-name is longer than 1500 bytes\n```\n\nor \n\n```\nINVALID_ARGUMENT: The value of property property_name is longer than 1048487 bytes\n```\n\nTo resolve this issue:\n\n- For indexed property values, split the property into multiple properties. If possible, create an un-indexed property and move data that doesn't need to be indexed into the un-indexed property.\n- For un-indexed property values, split the property into multiple properties or implement compression for the property value."]]