このページでは、Spectrum API が返すエラーコードと、トラブルシューティングに使える対処をまとめています。
Spectrum API のエラーは、Cloudflare v4 の標準エラーエンベロープに従います。レスポンス本文には、code と message を持つ errors 配列が含まれます。
{
"errors": [
{
"code": 11044,
"message": "No matching routes in the specified virtual network."
}
],
"messages": [],
"success": false,
"result": null
}リクエスト処理中に予期しないエラーが発生しました。レスポンスに診断用の詳細は含まれません。Cloudflare サポートへ連絡する場合は、元のエラーを特定できるよう、レスポンスの Ray ID を伝えてください。
HTTP 503 は、依存サービス(DNS や IP アドレス管理など)が一時的に利用できないことを示します。HTTP 500 は、それ以外の内部エラーを示します。
リクエスト本文に、API が認識しないフィールドが含まれています。このエラーは Pay-as-you-go アカウント上のアプリケーションに対してだけ返ります。Enterprise のアプリケーションでは、不明なフィールドは警告なしで無視されます。
Pay-as-you-go アカウントで Spectrum アプリケーションを作成または更新できるのは、protocol、dns、origin_direct だけです。よくある原因は、Spectrum の利用権がないアカウントが完全な Spectrum 設定を送ることです。これら 3 つ以外のフィールドは拒否されます。
解決方法: Spectrum 設定 API の全体を使うには、アカウントチームへ連絡し、有料アドオンとして Spectrum を有効にしてください。そうでない場合は、リクエストから protocol、dns、origin_direct 以外のフィールドを削除します。
特に記載がない限り、これらのエラーは HTTP 400 で返ります。
リクエストでは、origin_direct または origin_dns のどちらか一方だけを指定する必要があります。両方を指定した場合も、どちらも指定しない場合も、このエラーになります。
origin_dns の設定が検証に失敗しました。よくある原因は次のとおりです。
origin_dns.nameが有効なドメイン名ではない。- SRV 以外の
origin_dns.typeを指定したのに、origin_portがない。 origin_dns.ttlが許容範囲外である。
指定したオリジンアドレスの 1 つ以上が無効です。
よくある原因:
- 括弧のない IPv6 オリジン:
origin_directでは IPv6 アドレスを括弧で囲む必要があります。例はtcp://[2001:db8::1]:443です。括弧がないと、アドレス内のコロンで解析が曖昧になります。 - オリジン IP がアクセス制御の検証に失敗する: オリジン IP が内部のアクセス制御チェックに失敗することがあります。IP が有効で、許可された範囲に属しているかを確認してください。
DNS の type は、エッジ IP の割り当てモードと一致している必要があります。動的エッジ IP では type: "CNAME" が必要です。静的(BYOIP)エッジ IP では type: "ADDRESS" が必要です。既存アプリケーションの更新時に DNS type を変更しようとした場合も、このエラーが返ります。
アカウントで FTP トラフィック種別が有効になっていません。HTTP 403 で返ります。
解決方法: アカウントチームへ連絡し、FTP サポートを有効にしてください。
アカウントで edge_ips 機能(BYOIP)が有効になっていません。HTTP 403 で返ります。
解決方法: アカウントチームへ連絡し、アカウントで BYOIP を有効にしてください。
認証済みアカウントは、指定した edge_ips を使う権限がありません。
よくある原因:
- API トークンに IP prefix の権限がない: Spectrum に範囲を限定した API トークンには、BYOIP 検証に必要な IP prefix 権限が含まれないことがあります。Global API Key を使うか、API トークンに Account > IP Prefixes 権限を追加します。
- BYOIP prefix がアカウントに割り当てられていない: 割り当てる前に、BYOIP prefix がリクエスト元アカウントに割り当て済みかを確認します。
リクエストで argo_smart_routing を true にしましたが、アカウントで Argo Smart Routing が有効になっていません。HTTP 403 で返ります。
解決方法: アカウントチームへ連絡し、アカウントで Argo Smart Routing を有効にしてください。
指定した edge_ips の 1 つ以上が、別のゾーンですでに使われています。
よくある原因: 要求したエッジ IP が、削除済みゾーン上のレガシー Spectrum アプリケーションに保持されていることがあります。孤立したアプリケーションの整理は、Cloudflare サポートへ連絡してください。
Pay-as-you-go アカウントでは、プロトコルあたり 1 アプリケーションまでです。同じプロトコルで複数のアプリケーションが必要な場合は、アカウントチームへ連絡し、有料アドオンとして Spectrum を有効にしてください。
オリジンとして使っている DNS レコードまたは Load Balancer が、別ゾーンまたは許可されていないゾーンにあります。
解決方法: オリジンの DNS レコードまたは Load Balancer を同じゾーンへ移すか、代わりに IP アドレスを指定した origin_direct を使います。
次のコードは、仮想ネットワークオリジン を使うアプリケーションの検証時に、POST /zones/:zone/spectrum/apps と PATCH /zones/:zone/spectrum/apps/:id から返ります。
origin_dns を使うリクエストで virtual_network_id が設定されています。仮想ネットワークオリジンは、IP ベースのオリジンだけに対応しています。
解決方法: origin_dns を origin_direct に置き換え、仮想ネットワークが経路を持つプライベート IP と単一ポートを指定します。
origin_direct に複数のアドレスが含まれていました。仮想ネットワークオリジンは、単一のプライベート IP とポートに解決する必要があります。
解決方法: origin_direct を tcp://<IP>:<PORT> または udp://<IP>:<PORT> 形式の 1 件に減らします。
リクエストにポート範囲が含まれていました。origin_port または origin_direct アドレスのいずれかです。仮想ネットワークオリジンはポート範囲に対応していません。
解決方法: 範囲ではなく単一ポートを使います。複数ポートを公開する必要がある場合は、ポートごとに別の Spectrum アプリケーションを作成します。
IP と virtual_network_id の組み合わせが、指定した仮想ネットワーク内のどのルートにも一致しません。次の 2 つの場合があります。仮想ネットワークが存在しないか、指定した仮想ネットワーク内でその IP がルーティングできないかです。
解決方法:
virtual_network_idが、自分のアカウント上の仮想ネットワークと一致することを確認します。仮想ネットワークの一覧は List virtual networks エンドポイントで取得できます。- オリジン IP が、その仮想ネットワークに付いているルートの範囲内であることを確認します。ルートの一覧は List network routes エンドポイントで取得できます。
- 一致するルートがない場合は、Connect an IP/CIDR に従って追加します。
virtual_network_id が有効な UUID ではありません。
解決方法: UUID を指定します。仮想ネットワーク ID は、List virtual networks エンドポイントが返す各エントリの id フィールドです。
ゾーンは、クォータ内の利用可能な IPv4 アドレスをすべて割り当て済みです。
解決方法: アプリケーションを少ない IP にまとめます(複数アプリは、異なるポートで同じホスト名を共有できます)。追加の Cloudflare 管理 IP を購入するか、BYOIP を導入します。
要求したプロトコルは、そのゾーンでは利用できません。エラーメッセージには、要求したプロトコルで許可されていない具体的なエッジポートが含まれます。
同じ DNS 名のホスト名がすでに存在しますが、別のゾーンに属しています。アプリケーションの作成時または更新時に、ホスト名の検索が別ゾーン所有のレコードに一致すると発生することがあります。
解決方法:
- API リクエスト URL で正しいゾーン ID を使っているかを確認します。
- アプリケーションには別の DNS 名を使います。
- その DNS 名を、自分が管理する別ゾーンで以前使っていた場合は、先にそのゾーン上のアプリケーションを削除します。
- どれも当てはまらない場合は Cloudflare サポートへ連絡してください。ホスト名の内部整理が必要なことがあります。