INTEGRITY Документация

Устранение неполадок

Отладка

wrangler dev и wrangler tail доступны и помогают отлаживать ваши Durable Objects.

wrangler tail отображает поток логов консоли и исключений в реальном времени для каждого запроса, обработанного кодом Worker, включая как обычные запросы Worker, так и запросы Durable Object. После запуска npx wrangler deploy, вы можете использовать wrangler tail в корневом каталоге проекта Worker и перейдите по URL-адресу Worker, чтобы увидеть журналы консоли и ошибок в терминале.

Распространённые ошибки

Обработчики событий не зарегистрированы. Этот скрипт ничего не делает.

В файле Wrangler убедитесь, что dir и main записи указывают на правильный файл с кодом Worker и что расширение файла .mjs вместо .js, если используется синтаксис ES-модулей.

Невозможно применить --delete-class миграцию к классу.

При удалении миграции с помощью npx wrangler deploy --delete-class <ClassName>, вы можете столкнуться со следующей ошибкой: "Cannot apply --delete-class migration to class <ClassName> without also removing the binding that references it". Соответствующую привязку следует удалить из [durable_objects] в конфигурационный файл Wrangler перед попыткой применить --delete-class снова.

Durable Object перегружен.

Один экземпляр Durable Object не может выполнить больше работы, чем позволяет один поток. Эти ошибки означают, что у Durable Object слишком много работы, чтобы успевать обрабатывать входящие запросы:

Чтобы устранить эту ошибку, уменьшите объём работы на один запрос или сократите число запросов. Например, можно распределить запросы между большим числом экземпляров Durable Object.

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

Ваш аккаунт создает слишком высокую нагрузку на Durable Objects. Снизьте частоту запросов и повторите попытку позже.

Существует ограничение на то, как быстро можно создавать новые заглушки для новых или существующих Durable Object. Такие обращения обычно кешируются, а значит попытки для одного и того же набора недавно использованных Durable Object, как правило, завершаются успешно. Поэтому перехватывать эту ошибку и повторять попытку после небольшой паузы безопасно. По возможности также стоит распределить такие обращения между несколькими запросами.

Durable Object был сброшен, так как его код был обновлён.

Reset в сообщениях об ошибках означает состояние в памяти. Любое устойчивое состояние, которое уже было успешно сохранено с помощью state.storage не затрагивается.

См. Глобальная уникальность.

Операция хранения Durable Object превысила тайм-аут, из-за чего объект был сброшен.

Чтобы избежать бесконечной блокировки, установлено ограничение на время выполнения операций с хранилищем. В Durable Objects с достаточно большим числом пар «ключ-значение» deleteAll() может достичь этого ограничения по времени и завершиться ошибкой. В этом случае учтите, что каждый deleteAll() вызов действительно продвигается и что его можно безопасно повторять до успешного выполнения. В противном случае обратитесь в Поддержка Cloudflare.

Ваш аккаунт выполняет слишком много одновременных операций с хранилищем. Снизьте частоту запросов и повторите попытку позже.

Помимо рекомендованного отката с задержкой рассмотрите также изменение кода для использования state.storage.get(keys Array<string>) а не несколько отдельных state.storage.get(key) вызовы, где это возможно.