Как анализировать коды ошибок

На этой странице перечислены коды ошибок, с которыми вы можете столкнуться, и приведены рекомендации по их устранению.

DeadlineExceeded (262)

Ошибки DeadlineExceeded (262) могут возникать по следующим причинам:

  • Из-за увеличения задержки операция не была завершена в установленный срок (по умолчанию 60 секунд).
DeadlineExceeded (262): Deadline exceeded.

Чтобы устранить эту проблему, ознакомьтесь с руководством по устранению неполадок с задержкой.

Прервано (112)

Ошибки Aborted (112) могут возникать чаще в следующих случаях:

  • Документ обновляется слишком много раз в секунду.
  • Конфликт из-за перекрывающихся транзакций.
  • Трафик, который быстро растет или сталкивается с горячими точками.
Aborted (112): Too much contention on these documents. Please try again

или

Aborted (112): Aborted due to cross-transaction contention. This occurs when
multiple transactions attempt to access the same data, requiring at least one
to be aborted in order to enforce serializability.

Чтобы решить эту проблему, выполните следующие действия:

  • При резком увеличении трафика Cloud Firestore пытается автоматически масштабироваться, чтобы удовлетворить возросший спрос. По мере масштабирования Cloud Firestore задержка начинает уменьшаться.
  • Горячие точки ограничивают возможности масштабирования Cloud Firestore. Ознакомьтесь с рекомендациями по проектированию масштабируемых систем, чтобы выявить проблемные места.
  • Проверьте конфликты данных в транзакциях и то, как вы используете транзакции.
  • Уменьшите частоту записи в отдельные документы.

InvalidArgument (2)

Ошибки InvalidArgument (2) могут возникать в следующих ситуациях:

  • Попытка зафиксировать документ, размер которого превышает ограничение в 7,5 КиБ для записи индекса.

7,5 КиБ – это ограничение для записей индекса. Это ограничение нельзя превысить, и его нельзя изменить.

InvalidArgument (2): Index entry on field_name is larger than 7680 bytes.

Чтобы решить эту проблему, выполните следующие действия:

Для значений индексированных полей разделите поле на несколько полей. По возможности создайте неиндексируемое поле и переместите в него данные, которые не нужно индексировать.