Skip to content

Error code catalog

Every error CanvasRelay returns carries a stable CR-xxxx code. Codes are never renumbered or reused — the one you're looking at below means the same thing forever. In-app errors link straight to their entry here.

CR-1xxx — Sign-in & requests

Authentication, tokens, rate limits, and request-level failures. Most of these mean the request never got far enough to touch your data.

CR-1001HTTP 401Authentication required

Sign in again. API callers: check the Bearer key is present and not revoked.

CR-1002HTTP 401Invalid credentials

Wrong email/password, or a revoked API key. Reset the password or mint a new key.

CR-1003HTTP 401Session expired

Your 30-day session rolled off — sign in again. Nothing was lost.

CR-1004HTTP 403API key lacks the required scope

Your role (or API key) doesn't include this action. Ask an owner/admin, or use a key with the right scope.

CR-1005HTTP 403Bot verification failed

The bot check failed — reload the page and try again; VPNs sometimes trip it.

CR-1006HTTP 429Rate limit exceeded

Too many requests. Wait a minute and retry; players back off automatically.

CR-1007HTTP 404Not found

The route or resource doesn't exist — check the URL/id.

CR-1008HTTP 500Internal server error

Something broke on our side. If it persists, email support with roughly what you were doing.

CR-1009HTTP 400Token is invalid or expired

The link/token is wrong, used, or expired — request a fresh one.

CR-1010HTTP 409An account with this email already exists

That email already has an account — sign in instead, or use password reset.

CR-1011HTTP 422Password is too weak

Pick a longer password (10+ characters) that's not a common word or sequence.

CR-2xxx — Workspace & plan

Organization membership, invitations, and plan entitlements — what your workspace is allowed to do.

CR-2001HTTP 404Organization not found

The workspace id is wrong, or you're not a member — it doesn't leak either way.

CR-2002HTTP 403Not a member of this organization

You're not a member of that workspace. Switch workspaces, or ask for an invite.

CR-2003HTTP 403Your plan does not include this feature

This feature needs a higher plan. Settings → Billing shows what's included in each.

CR-2004HTTP 402Plan limit exceeded

You've hit a plan limit (screens, storage, …). Upgrade or free up capacity.

CR-2005HTTP 409Board slug is already taken

That board slug is taken — pick another, or let us derive one.

CR-2006HTTP 409That user is already a member of this organization

They're already in the workspace — no invite needed.

CR-2007HTTP 409An organization must keep at least one owner

You can't remove or demote the last owner. Promote someone else to owner first.

CR-2008HTTP 403This invitation was sent to a different email address

Sign in with the exact email the invitation was sent to, then open the link again.

CR-2009HTTP 403Organization is scheduled for deletion

This workspace is scheduled for deletion — cancel it in Settings to keep working.

CR-2010HTTP 404Network not found

If this keeps happening, email [email protected] with the code and what you were doing — the code tells us exactly where to look.

CR-2011HTTP 403Active Network operator access is required

If this keeps happening, email [email protected] with the code and what you were doing — the code tells us exactly where to look.

CR-2012HTTP 403Organization is not linked to this Network

If this keeps happening, email [email protected] with the code and what you were doing — the code tells us exactly where to look.

CR-2013HTTP 403Delegated session is invalid, expired, or revoked

If this keeps happening, email [email protected] with the code and what you were doing — the code tells us exactly where to look.

CR-2014HTTP 409Portal hostname is already registered

If this keeps happening, email [email protected] with the code and what you were doing — the code tells us exactly where to look.

CR-2015HTTP 403This campaign content is centrally managed; use its approved local fields

If this keeps happening, email [email protected] with the code and what you were doing — the code tells us exactly where to look.

CR-2016HTTP 409This campaign is not currently installable

If this keeps happening, email [email protected] with the code and what you were doing — the code tells us exactly where to look.

CR-2017HTTP 409The campaign target is no longer an active Network organization

If this keeps happening, email [email protected] with the code and what you were doing — the code tells us exactly where to look.

CR-2018HTTP 503Organization data is temporarily unavailable

If this keeps happening, email [email protected] with the code and what you were doing — the code tells us exactly where to look.

CR-3xxx — Editor & content

Scene document validation and editor rules. These protect your content from saving in a broken state.

CR-3001HTTP 422Scene document failed validation

The scene document failed validation — reload the board and redo the last edit.

CR-3002HTTP 422Unsupported scene schema version

This scene was written by a newer version of CanvasRelay. Update the player/editor.

CR-3003HTTP 422Unknown element kind

An element kind this build doesn't recognize. Players show a placeholder; update when you can.

CR-3004HTTP 422Request validation failed

A field failed validation — the response details name the field.

CR-3005HTTP 409A board must keep at least one scene

A board must keep at least one scene. Add another scene before deleting this one.

CR-3006HTTP 409Scene is referenced by a schedule

If this keeps happening, email [email protected] with the code and what you were doing — the code tells us exactly where to look.

CR-4xxx — Publishing

Draft, release, and publish-flow conflicts.

CR-4001HTTP 409No changes to publish

Nothing changed since the last publish.

CR-4002HTTP 404Release not found

That release doesn't exist (anymore) — check the board's release history.

CR-4003HTTP 409A publish is already in progress

Another publish or review action is in flight — wait a moment and retry.

CR-4004HTTP 409Document changed since you loaded it

Someone (or another tab) changed this board since you opened it. Reload to get the latest, then re-apply your edit.

CR-5xxx — Screens & players

Pairing, device credentials, and player-side failures — the codes a TV can show.

CR-5001HTTP 404Device not found

The screen id is wrong, or it belongs to another workspace.

CR-5002HTTP 410Pairing code expired

The pairing code expired or was already used — the TV shows a fresh code automatically.

CR-5003HTTP 409Device is offline

The screen hasn't checked in recently — check its power and network.

CR-5004HTTP 401This screen was disconnected — pair it again from the dashboard

This screen was disconnected from the dashboard. On the TV, pair again with the new code.

CR-5005HTTP 503Device auth is not configured on this environment

This environment has no device-auth secret configured — an ops issue, contact support.

CR-5006HTTP 502Widget data is temporarily unavailable

A widget's data source (weather, RSS, …) is temporarily unreachable. The widget degrades per its offline policy and recovers on its own.

CR-5007HTTP 409This board contains elements unsupported by the native Roku player

If this keeps happening, email [email protected] with the code and what you were doing — the code tells us exactly where to look.

CR-6xxx — Media

Upload size/type limits and media library rules.

CR-6001HTTP 404Media not found

The media id is wrong or was deleted.

CR-6002HTTP 413Media exceeds the size limit

File too large — images ≤10MB, video ≤200MB, fonts ≤2MB. Compress and retry.

CR-6003HTTP 415Unsupported media type

Unsupported or mislabeled file type. Images: png/jpeg/webp (SVG is rejected for safety); video: mp4/webm; fonts: woff2.

CR-6004HTTP 402Media storage quota exceeded

Your plan's media storage is full — delete unused media or upgrade.

CR-6005HTTP 409Media is referenced by scenes

Scenes still reference this file. Replace it (same id, updates everywhere) or remove it from those scenes first.

CR-7xxx — Billing

Checkout, subscription, and payment states.

CR-7001HTTP 402A payment method is required

Add a payment method in Settings → Billing.

CR-7002HTTP 402Payment failed

The card was declined — update it in the billing portal. We'll retry automatically.

CR-7003HTTP 402Subscription is not active

The subscription isn't active — check Settings → Billing.

CR-7004HTTP 503Billing is not configured on this environment

Billing isn't configured on this environment — an ops issue, contact support.

CR-7005HTTP 404No billing account for this organization

No billing account exists yet — start a checkout first.

CR-7006HTTP 403Verify your email address before starting checkout

Verify your email (link valid 24h) before starting checkout.

CR-8xxx — AI assist

AI availability, quotas, and output validation.

CR-8001HTTP 503AI service unavailable

AI isn't available right now (or isn't configured on this environment). Everything works manually.

CR-8002HTTP 429AI usage quota exceeded

AI quota reached — monthly credits or the daily action cap. Resets on its own; upgrade for more.

CR-8003HTTP 502AI returned an invalid scene patch

The AI returned something we couldn't use, so nothing changed. Retry, or use the paste-text fallback for imports.