API

Match an error to its lifecycle stage.

Publishing errors use a JSON `error` code. Rate limits add retry headers; artifact delivery uses status codes for allowance, missing, and pruned states.

JSON errorsBounded ingest

Request limits

  • JSON request body: 96 KiB maximum
  • release notes: 64 KiB maximum
  • signature: 32 KiB maximum
  • content type: 200 printable characters and must contain /
  • artifact: 5 GiB default maximum; deployment override possible
  • artifacts per draft: 32 distinct targets
  • channel: 1–64 allowed characters
  • version and target: 1–128 allowed characters
  • format: leading . and up to 64 following allowed characters

Authentication

StatusError
401missing_token, malformed_token, unknown_key, invalid_signature, revoked
403insufficient_scope, key_app_mismatch
429rate_limited

JSON and validation

StatusError
400invalid_json, json_object_required, missing required fields, or invalid_* fields
400notes_too_large, signature_too_large
413request_body_too_large, artifact_too_large

Draft and artifact state

StatusError
404channel_not_found, draft_release_not_found
409release_already_published, storage_quota_exceeded, artifact_count_limit_exceeded
409artifact_upload_missing, artifact_size_mismatch
400draft_release_artifacts_required, artifact_object_key_missing

Unexpected publishing failures are normalized to ingest_request_failed with status 500.

Edge delivery

StatusMeaning
200Complete manifest, metadata, or artifact response
204No updater response body because no newer release applies
206Artifact range response
402Distribution allowance exhausted or configured invoice cap reached
404App, domain, release, target, or artifact not found
410Artifact metadata exists but the binary was pruned
501Stored updater adapter is unsupported
503Required control-plane or billing state is unavailable

Retry behavior

The official Action retries network failures and statuses 408, 425, 429, 500, 502, 503, and 504 for eligible steps. It honors numeric retry-after values up to five seconds. The final publish operation is attempted once.