Skip to main content

channel_not_found

HTTP 404 · code: "channel_not_found" · type: https://docs.formfeed.dev/errors/channel-not-found

The request names a release channel that the template does not have in the workspace of the key. On a render, template and channel repeat what the request named.

Example​

{
"type": "https://docs.formfeed.dev/errors/channel-not-found",
"title": "Channel not found",
"status": 404,
"detail": "Template \"invoice\" has no channel \"staging\" in workspace production",
"code": "channel_not_found",
"template": "invoice",
"channel": "staging",
"request_id": "req_4b7c1e9a2f3d4c5b8a6e7f9012"
}

Common causes​

  • A render or batch item with "version": "staging" for a template that has no staging channel, for example because it was never created in this workspace or was deleted.
  • GET /templates/{id}/versions/{channel} for such a channel, which is also what formfeed types --channel reads.
  • promote, rollback or DELETE on a channel that does not exist.
  • A misspelt channel name, such as stagging.

A template without the version a render names answers template_not_found instead. A name that cannot be a channel at all (uppercase letters, a leading digit, more than 32 characters) answers invalid_request on renders and version reads, and channel_name_invalid on the channel endpoints. On the Free plan, a render or a PUT that names a channel other than published answers forbidden (feature: "channels") before the channel is looked up.

How to fix it​

  • List the template's channels with formfeed channels list <slug> or GET /templates/{id}/channels.
  • Create the channel (formfeed channels set <slug> staging <version>) or render another one. See Release channels.
  • Check that the key belongs to the workspace you expect: channels belong to a template, and templates to one workspace.

Retry?​

No. The same request gets the same answer. Fix what the problem names, then send the request again with a new Idempotency-Key or without one: a 4xx answer is stored under its key for 24 hours, so the old key returns this problem again. See retrying.