EdgeRoutine (ER) の一般的なエラーのトラブルシューティング

更新日時
Copy as MD

ルーチン自身のドメイン名へのフェッチリクエストが許可されない

エラーメッセージ

@Fetch.fetch: fetch authority is same with origin authority, which is forbidden

原因

ルーチンは自身のドメイン名に対してフェッチリクエストを送信できません。たとえば、ルーチンのドメイン名が 1.a.com の場合、ルーチンは 1.a.com 以外の任意のドメイン名をフェッチできますが、1.a.com 自体にはフェッチできません。

内部ステータスコードが許可されない

エラーメッセージ

HttpBody.constructor: invalid status code

原因

ステータスコード 596597598599 は EdgeRoutine (ER) によって予約されているため、コード内で使用できません。

ER によってコネクションが終了される

エラーメッセージ

io error@: io error(Connection reset by peer)

原因

ルーチンが CPU タイムスライス制限を超えたため、ER はコネクションを終了し、仮想マシン (VM) を停止しました。以下のようなエラーログが生成されます。

2023 0306 16:39:39.611431 115939 JSThread-3() E @tag(JSError) @loc(src/js-instance-inl.h:366)]: <uid: debugger::I::79de2290-d3a3-4f89-81db-6c3ba779b8b2;event: fetch;host: ;path: /;auth: market.wapa.taobao.com;unique_id: ;pip: 127.0.0.1:46174;fetch_uuid: b5f59f33-8f9b-487d-be32-56e3c368f3f0;start_ts: 1678091979098;req: http;milestone: *-*---;><N/A><>: category: Fatal Error; caller: JSInstance; sub-reason: cpu time; description: N/A; message: the virtual machine has been forcebly terminated for user id 'debugger::I::79de2290-d3a3-4f89-81db-6c3ba779b8b2' due to its violation of resource constraints of system!

解決策

CPU タイムスライス制限を増やしてください。たとえば、制限を 50 ms から 100 ms に変更します。

利用可能なプロキシアドレスがない

エラーメッセージ

unhandled error(13485,13477)@: Error: io error@: no available fetch proxy address now\nstacktrace:\nN/A\n

原因 1

cache.put メソッドの URL が https を使用していますが、キャッシュ API はこれをサポートしていません。URL スキームを http に変更してください。

原因 2

フェッチリクエストが Alibaba Cloud CDN に追加されていないドメイン名をターゲットにしていますが、cdnProxy:true が設定されています。ドメイン名を Alibaba Cloud CDN または Dynamic Content Delivery Network (DCDN) に追加するか、cdnProxy:true 設定を削除してください。

コネクションが終了される

エラーメッセージ

Error: unhandled error(13486,13505)@: Broken connection, unexpected EOF

原因

ルーチンがレスポンスデータを受信中に、アップストリームサービスがコネクションを切断しました。