Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

トラブルシューティング

最終更新 Markdown で表示Agent セットアップ

デバッグ

Durable Objects のデバッグには、wrangler devwrangler tail の両方が使えます。

wrangler tail は、通常の Worker リクエストと Durable Object リクエストの両方について、Worker コードが処理した各リクエストのコンソールログと例外ログをライブ表示します。npx wrangler deploy のあと、Worker プロジェクトのルートで wrangler tail を実行し、Worker の URL にアクセスすると、ターミナルにコンソールログとエラーログが表示されます。

よくあるエラー

No event handlers were registered. This script does nothing.

Wrangler ファイルで、dirmain が Worker コードを含む正しいファイルを指していることを確認します。ES modules 構文を使う場合は、拡張子を .js ではなく .mjs にしてください。

Cannot apply --delete-class migration to class.

npx wrangler deploy --delete-class <ClassName> でマイグレーションを削除すると、"Cannot apply --delete-class migration to class <ClassName> without also removing the binding that references it" というエラーになることがあります。--delete-class を再実行する前に、Wrangler 設定ファイル[durable_objects] から、対応するバインディングを削除してください。

Durable Object is overloaded.

Durable Object の 1 インスタンスが処理できる仕事量は、1 スレッドで可能な範囲に限られます。次のエラーは、着信リクエストに追いつけないほど仕事が多いことを示します。

  • Error: Durable Object is overloaded. Too many requests queued. キューに入っているリクエストの件数が多すぎます。
  • Error: Durable Object is overloaded. Too much data queued. キューに入っているリクエストのデータ総量が大きすぎます。
  • Error: Durable Object is overloaded. Requests queued for too long. いちばん古いリクエストが、キューに長く留まりすぎています。
  • Error: Durable Object is overloaded. Too many requests for the same object within a 10 second window. 短い時間(10 秒)内の、1 つの Durable Object へのリクエスト数が多すぎます。このエラーは、より深刻な過負荷を示します。

このエラーを解消するには、リクエストあたりの仕事を減らすか、送るリクエスト数を減らします。たとえば、より多くの Durable Object インスタンスにリクエストを分散できます。

過負荷が原因のこれらのエラーと、ほかの同様のエラーには、例外に .overloaded プロパティ が付きます。過負荷の操作を再試行しない判断に使えます。

Your account is generating too much load on Durable Objects. Please back off and try again later.

新しい、または既存の Durable Objects 向けに スタブ を作る速度には上限があります。この参照は通常キャッシュされるため、最近アクセスした同じ一連の Durable Objects への再試行は成功しやすく、このエラーを捕捉して短時間待ってから再試行しても問題ありません。可能なら、これらの参照を複数のリクエストに分散することも検討してください。

Durable Object reset because its code was updated.

エラーメッセージの reset は、インメモリ状態を指します。state.storage 経由ですでに正常に永続化した状態は影響を受けません。

Global Uniqueness を参照してください。

Durable Object storage operation exceeded timeout which caused object to be reset.

無限にブロックしないよう、ストレージ操作にかけられる時間には上限があります。キーと値のペアが十分多い Durable Objects では、deleteAll() がその制限に達して失敗することがあります。この場合、各 deleteAll() 呼び出しは進捗しており、成功するまで再試行しても問題ありません。それでも解決しない場合は Cloudflare サポート に連絡してください。

Your account is doing too many concurrent storage operations. Please back off and try again later.

待機して再試行するほか、可能ならコードを変更し、個別の state.storage.get(key) を繰り返すのではなく state.storage.get(keys Array<string>) を使ってください。

役に立ちましたか?