---
title: Error codes
description: Error codes returned by the Cloudflare Spectrum API.
image: https://developers.cloudflare.com/core-services-preview.png
---

> Documentation Index  
> Fetch the complete documentation index at: https://developers.cloudflare.com/spectrum/llms.txt  
> Use this file to discover all available pages before exploring further. 

[Skip to content](#%5Ftop) 

# Error codes

This page documents error codes returned by the [Spectrum API](https://developers.cloudflare.com/api/resources/spectrum/subresources/apps/), along with recommended fixes to help with troubleshooting.

## How errors are returned

Spectrum API errors follow the standard Cloudflare v4 error envelope. The response body includes an `errors` array with `code` and `message` fields:

```
{  "errors": [    {      "code": 11044,      "message": "No matching routes in the specified virtual network."    }  ],  "messages": [],  "success": false,  "result": null}
```

## General errors (10xxx)

### 10002 — Unexpected internal server error

An unexpected error occurred during request processing. The response does not include diagnostic details. If you contact Cloudflare support, provide the [Ray ID](https://developers.cloudflare.com/fundamentals/reference/cloudflare-ray-id/) from the response so the original error can be located.

HTTP `503` indicates a dependent service (such as DNS or IP address management) is temporarily unavailable. HTTP `500` indicates any other internal error.

### 10012 — Unknown field in request JSON

The request body contains a field the API does not recognize. This error is only returned for applications on Pay-as-you-go accounts. Enterprise applications silently ignore unknown fields.

Pay-as-you-go accounts are limited to `protocol`, `dns`, and `origin_direct` when creating or updating a Spectrum application. A common cause is an account without a Spectrum entitlement sending a full Spectrum configuration — any field outside those three will be rejected.

**Resolution:** To use the full Spectrum configuration API, contact your account team to enable Spectrum as a paid add-on. Otherwise, remove any fields other than `protocol`, `dns`, and `origin_direct` from the request.

## Application configuration errors (11xxx)

These errors are returned as HTTP `400`, unless noted otherwise.

### 11000 — Invalid origin configuration

The request must provide exactly one of `origin_direct` or `origin_dns`. Providing both or neither will trigger this error.

### 11001 — Invalid origin DNS configuration

The `origin_dns` configuration failed validation. Common causes:

* The `origin_dns.name` is not a valid domain name.
* A non-SRV `origin_dns.type` was provided without an `origin_port`.
* The `origin_dns.ttl` is outside the allowed range.

### 11002 — Invalid origin address

One or more of the origin addresses provided are invalid.

Common causes:

* **IPv6 origin without brackets:** IPv6 addresses must be wrapped in brackets in `origin_direct`, for example `tcp://[2001:db8::1]:443`. Without brackets, the colons in the address make parsing ambiguous.
* **Origin IP fails access control validation:** The origin IP may fail an internal access control check. Verify the IP is valid and belongs to an allowed range.

### 11004 — Invalid DNS configuration

The DNS type must match the edge IP allocation mode. Dynamic edge IPs require `type: "CNAME"`. Static (BYOIP) edge IPs require `type: "ADDRESS"`. This error is also returned if you attempt to change the DNS type when updating an existing application.

### 11014 — FTP not enabled

FTP traffic type is not enabled for the account. Returned as HTTP `403`.

**Resolution:** Contact your account team to enable FTP support.

### 11018 — `edge_ips` not enabled

The `edge_ips` feature (BYOIP) is not enabled for the account. Returned as HTTP `403`.

**Resolution:** Contact your account team to enable [BYOIP](https://developers.cloudflare.com/spectrum/about/byoip/) for the account.

### 11019 — `edge_ips` not authorized

The authenticated account is not authorized to use the provided `edge_ips`.

Common causes:

* **API token lacks IP prefix permissions:** API tokens scoped to Spectrum may not carry the IP prefix permissions required for BYOIP validation. Use a Global API Key, or add the **Account** \> **IP Prefixes** permission to the API token.
* **BYOIP prefix not allocated to account:** Verify the BYOIP prefix is allocated to the requesting account before assigning it.

### 11026 — Argo Smart Routing not enabled

The request set `argo_smart_routing` to `true`, but Argo Smart Routing is not enabled for the account. Returned as HTTP `403`.

**Resolution:** Contact your account team to enable Argo Smart Routing for the account.

### 11033 — `edge_ips` in use

One or more of the provided `edge_ips` is already in use by another zone.

Common cause: The requested edge IP may be held by a legacy Spectrum application on a deleted zone. Contact Cloudflare support to clean up the orphaned application.

### 11034 — Cannot create more applications for protocol

Pay-as-you-go accounts are limited to one application per protocol. If you need multiple applications on the same protocol, contact your account team to enable Spectrum as a paid add-on.

### 11050 — Invalid cross-zone origin DNS configuration

The DNS record or Load Balancer used as an origin lives on a different zone or a non-permitted zone.

**Resolution:** Move the origin DNS record or Load Balancer to the same zone, or use `origin_direct` with an IP address instead.

## Virtual network origin errors

The following codes are returned by `POST /zones/:zone/spectrum/apps` and `PATCH /zones/:zone/spectrum/apps/:id` when validating an application that uses a [virtual network origin](https://developers.cloudflare.com/spectrum/reference/configuration-options/#virtual-network-origin).

### 11041 — Virtual network requires origin direct

`virtual_network_id` was set on a request that uses `origin_dns`. Virtual network origins are only supported with IP-based origins.

**Resolution:** Replace `origin_dns` with `origin_direct` and provide the private IP and single port that the virtual network routes to.

### 11042 — Virtual network requires single origin

`origin_direct` contained more than one address. Virtual network origins must resolve to a single private IP and port.

**Resolution:** Reduce `origin_direct` to a single entry of the form `tcp://<IP>:<PORT>` or `udp://<IP>:<PORT>`.

### 11043 — Virtual network no port range

The request included a port range, either in `origin_port` or in the `origin_direct` address. Virtual network origins do not support port ranges.

**Resolution:** Use a single port instead of a range. If you need to expose multiple ports, create a separate Spectrum application per port.

### 11044 — Virtual network route not found

The combination of IP and `virtual_network_id` does not match any route in the specified virtual network. This covers two cases: the virtual network does not exist, or the IP is not routable within the virtual network you specified.

**Resolution:**

* Confirm `virtual_network_id` matches a virtual network on your account. You can list virtual networks with the [List virtual networks](https://developers.cloudflare.com/api/resources/zero%5Ftrust/subresources/networks/subresources/virtual%5Fnetworks/methods/list/) endpoint.
* Confirm the origin IP is within a route attached to that virtual network. You can list routes with the [List network routes](https://developers.cloudflare.com/api/resources/zero%5Ftrust/subresources/networks/subresources/routes/methods/list/) endpoint.
* If no matching route exists, add one by following [Connect an IP/CIDR](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/cloudflared/connect-cidr/).

### 11045 — Virtual network invalid UUID

`virtual_network_id` is not a valid UUID.

**Resolution:** Provide a UUID. Virtual network IDs are returned by the [List virtual networks](https://developers.cloudflare.com/api/resources/zero%5Ftrust/subresources/networks/subresources/virtual%5Fnetworks/methods/list/) endpoint in the `id` field of each entry.

## Addressing errors (12xxx)

### 12005 — IPv4 quota limit

The zone has allocated all available IPv4 addresses in its quota.

**Resolution:** Consolidate applications onto fewer IPs (multiple apps can share a hostname on different ports), purchase additional Cloudflare-managed IPs, or onboard [BYOIP](https://developers.cloudflare.com/spectrum/about/byoip/).

## Protocol errors (13xxx)

### 13002 — Protocol not available

The requested protocol is not available for the zone. The error message includes specific edge ports that are not allowed for the requested protocol.

## Hostname errors (16xxx)

### 16001 — Zone mismatch

A hostname with the same DNS name already exists but belongs to a different zone. This can occur during application creation or update when the hostname lookup matches a record owned by another zone.

**Resolution:**

* Verify you are using the correct zone ID in the API request URL.
* Use a different DNS name for the application.
* If the DNS name was previously used on another zone you control, delete the application on that zone first.
* Contact Cloudflare support if none of these apply — the hostname may need to be cleaned up internally.

```json
{"@context":"https://schema.org","@type":"TechArticle","@id":"https://developers.cloudflare.com/spectrum/reference/error-codes/#page","headline":"Error codes · Cloudflare Spectrum docs","description":"Error codes returned by the Cloudflare Spectrum API.","url":"https://developers.cloudflare.com/spectrum/reference/error-codes/","inLanguage":"en","image":"https://developers.cloudflare.com/core-services-preview.png","dateModified":"2026-06-30","publisher":{"@type":"Organization","name":"Cloudflare","url":"https://www.cloudflare.com/"},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"/directory/","name":"Directory"}},{"@type":"ListItem","position":2,"item":{"@id":"/spectrum/","name":"Spectrum"}},{"@type":"ListItem","position":3,"item":{"@id":"/spectrum/reference/","name":"Reference"}},{"@type":"ListItem","position":4,"item":{"@id":"/spectrum/reference/error-codes/","name":"Error codes"}}]}
```
