Error reference

RFC 9457 problem types returned by mediacopilot.io, with the machine-readable code and the recovery path for each.

Errors that this site generates itself use RFC 9457 Problem Details with the media type application/problem+json. Branch on the code member — it is stable — not on title or detail, which are prose and may be reworded.

Every body carries type, title, status, detail, instance, code and docs. code is the machine-readable identifier, docs points back at this page, and type dereferences to the matching section below. Additional members may appear over time: ignore unknown members rather than failing.

One response is only partly negotiable: the body of a 404. When the requested path *cannot* be a page — its first segment is not a section of this site — the edge answers directly, in markdown or problem+json, whichever the Accept header asked for. When the path could have been a page (/features/does-not-exist), only the origin can tell, and CloudFront Functions do not run on responses of 400 and above; that body is therefore the HTML 404 document, which embeds a markdown recovery block also served standalone at https://mediacopilot.io/404.md.

Example body

{
  "type": "https://mediacopilot.io/problems#not-acceptable",
  "title": "No acceptable representation",
  "status": 406,
  "detail": "This resource is available as text/html and text/markdown only. The Accept header of the request excluded both.",
  "instance": "/features/dubbing-tool",
  "code": "not_acceptable",
  "docs": "https://mediacopilot.io/problems",
  "available": [
    "text/html",
    "text/markdown"
  ]
}

No API on this host

Code
no_api_on_this_host
HTTP status
404
Type URI
https://mediacopilot.io/problems#no-api-on-this-host
Media type
application/problem+json
Emitted by
CloudFront viewer-request function

mediacopilot.io serves the MediaCopilot marketing website. It exposes no JSON API under /api. Read /openapi.json for the endpoints this host does serve, or /llms.txt for a map of the content.

Recover: Stop retrying /api/* on this host. Use /openapi.json to discover the real surface, and contact hello@mediacopilot.io for product API access.

No acceptable representation

Code
not_acceptable
HTTP status
406
Type URI
https://mediacopilot.io/problems#not-acceptable
Media type
application/problem+json
Emitted by
CloudFront viewer-request function

This resource is available as text/html and text/markdown only. The Accept header of the request excluded both.

Recover: Retry with Accept: text/markdown for the agent-friendly representation, or Accept: text/html for the rendered page.

Preview environment restricted

Code
preview_restricted
HTTP status
403
Type URI
https://mediacopilot.io/problems#preview-restricted
Media type
application/problem+json
Emitted by
CloudFront viewer-request function (preview hosts only)

The UAT preview host (websitepreview.mediacopilot.io) and the *.cloudfront.net domains are reachable only from the corporate VPN egress IP. The public site is https://mediacopilot.io.

Recover: Request https://mediacopilot.io instead — the public production host is not gated.

Page not found

Code
page_not_found
HTTP status
404
Type URI
https://mediacopilot.io/problems#page-not-found
Media type
application/problem+json
Media type without negotiation
text/html
Emitted by
CloudFront viewer-request function when the path cannot be a page; otherwise the CloudFront custom error response, whose body is the HTML 404 document

No page exists at this path. mediacopilot.io serves pages under /features, /use-cases and /blog (also under /es), plus a few top-level pages. /llms.txt and /v1/pages.json list every published page.

Recover: Read /llms.txt, /v1/pages.json or /sitemap.xml and match the closest slug; the section indexes are /features, /use-cases and /blog.

See also