---
title: "Error reference | MediaCopilot"
description: "RFC 9457 problem types returned by mediacopilot.io, with machine-readable codes and recovery hints for agents."
canonical: https://mediacopilot.io/problems
language: en
html_version: https://mediacopilot.io/problems
---

# 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](https://mediacopilot.io/404.md).

## Example body

```json
{
  "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

**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.

## not-acceptable

**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-restricted

**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

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