Skip to content

Workers Versions errors and messages require arrays in OpenAPI but are null in API responses #47

Description

@nicu-chiciuc

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions