The OpenAPI schema for Workers Versions responses requires errors and messages to be arrays, but live Cloudflare API responses can return both fields as null.
Schema paths:
#/components/schemas/workers_api-response-common/properties/errors
#/components/schemas/workers_api-response-common/properties/messages
Both properties reference:
#/components/schemas/workers_messages
Endpoint confirmed:
GET /accounts/{account_id}/workers/workers/{worker_id}/versions
Schema repro:
curl -fsSL https://raw.githubusercontent.com/cloudflare/api-schemas/main/openapi.json \
| jq '{
errors: .components.schemas["workers_api-response-common"].properties.errors,
messages: .components.schemas["workers_api-response-common"].properties.messages,
workers_messages_type: .components.schemas.workers_messages.type
}'
Actual schema output:
{
"errors": {
"$ref": "#/components/schemas/workers_messages"
},
"messages": {
"$ref": "#/components/schemas/workers_messages"
},
"workers_messages_type": "array"
}
Then call the Workers Versions endpoint:
curl -fsS \
"https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/workers/workers/$CLOUDFLARE_WORKER_ID/versions?per_page=1&page=1" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
| jq '{success, errors, messages}'
Observed live response shape:
{
"success": true,
"errors": null,
"messages": null
}
Expected one of:
- successful API responses use empty arrays for
errors and messages, or
- the OpenAPI response schema permits
null for those fields.
Impact:
Strict clients generated from cloudflare/api-schemas reject otherwise successful Workers Versions responses. In our case, an Ajv validator generated from the schema rejected both fields because null does not satisfy type: array.
The OpenAPI schema for Workers Versions responses requires
errorsandmessagesto be arrays, but live Cloudflare API responses can return both fields asnull.Schema paths:
#/components/schemas/workers_api-response-common/properties/errors#/components/schemas/workers_api-response-common/properties/messagesBoth properties reference:
#/components/schemas/workers_messagesEndpoint confirmed:
GET /accounts/{account_id}/workers/workers/{worker_id}/versionsSchema repro:
Actual schema output:
{ "errors": { "$ref": "#/components/schemas/workers_messages" }, "messages": { "$ref": "#/components/schemas/workers_messages" }, "workers_messages_type": "array" }Then call the Workers Versions endpoint:
Observed live response shape:
{ "success": true, "errors": null, "messages": null }Expected one of:
errorsandmessages, ornullfor those fields.Impact:
Strict clients generated from
cloudflare/api-schemasreject otherwise successful Workers Versions responses. In our case, an Ajv validator generated from the schema rejected both fields becausenulldoes not satisfytype: array.