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
- openapi.json — every endpoint of this site, with these problem types wired into the 4xx and 5xx responses
- llms.txt — map of the site content
- Product API or MCP server access: hello@mediacopilot.io