Skip to content
RSXDocs
RSX · API · Errors

Error reference

Every RFC 7807 type URL the platform emits points at a page below. The shape of every error is documented in the getting started guide.

4xx
The request has to change. Fix it and retry.
5xx
Nothing about the request is wrong. Retry with backoff, and report the requestId if it persists.
01

Platform-wide 23

Raised by the gateway, by the shared middleware, or by more than one service. Any endpoint can return these.

Platform-wide errors

  • Status
    400
    Meaning
    The request body or query string did not match the endpoint's schema. The detail names each field that failed and why, in the form 'field: reason', separated by semicolons. A few endpoints answer 422 with this same slug when the shape is valid but the values contradict each other, such as two artefacts in one release claiming the same platform.
  • Status
    400
    Meaning
    All add actions require an Idempotency-Key header so a retried request can't create a duplicate.
  • Status
    401
    Meaning
    Key-management endpoints (/platform/v1/keys/*) authenticate with the platform admin token, not an API key.
  • Status
    401
    Meaning
    The supplied key is malformed or not recognised by the platform.
  • Status
    401
    Meaning
    A JWT-authenticated endpoint rejected the bearer token: missing, malformed, expired, wrong issuer/audience, or not signed by a known key. Also returned by RSX ID for an unrecognised, expired, or reused refresh token.
  • Status
    401
    Meaning
    The request reached an authenticated endpoint without an Authorization header.
  • Status
    401
    Meaning
    The key exists but has been revoked, or its rotation grace window has ended.
  • Status
    401
    Meaning
    The endpoint requires a platform API key and the request carried none that the gateway could verify.
  • Status
    403
    Meaning
    This endpoint (developer self-service API keys) needs an RSX ID developer account.
  • Status
    403
    Meaning
    You are signed in and your account is valid, but it does not hold the staff role this application requires.
  • Status
    403
    Meaning
    Your account holds the required staff role but is missing one or more of the scopes this application requires. The error detail names them.
  • Status
    403
    Meaning
    The key is valid but doesn't hold the scope this endpoint requires (scopes look like project:group:action). RSX ID's OIDC authorize endpoint also uses this slug with a 400 for a different problem: the scopes an application asked for are missing 'openid', include first-party-only scopes it may not receive, or, for an application bound to an RSX resource such as RSX MCP, include a scope that resource does not define.
  • Status
    403
    Meaning
    A developer key may only be scoped to public endpoints. One or more requested scopes are private (admin-issued keys only).
  • Status
    403
    Meaning
    The surface requires RSX ID sign-in but is missing the application id or issuer settings it needs to check one.
  • Status
    404
    Meaning
    No API key exists with the requested id (platform/v1).
  • Status
    404
    Meaning
    The requested resource or endpoint does not exist (or is not publicly available).
  • Status
    404
    Meaning
    The package exists but has no version by that name.
  • Status
    409
    Meaning
    A request with this Idempotency-Key is still being processed. Answering now would mean running the operation twice, which is what the key exists to prevent.
  • Status
    409
    Meaning
    A developer account has reached its maximum number of active API keys.
  • Status
    410
    Meaning
    This API version passed its published sunset date and no longer serves requests (§6.8: deprecations are announced with Deprecation/Sunset headers well before this).
  • Status
    422
    Meaning
    This Idempotency-Key was already used with a different request body, which is a client bug rather than a retry.
  • Status
    429
    Meaning
    Your key's token bucket is empty. Every response carries X-RateLimit-* headers.
  • Status
    500
    Meaning
    Something failed on our side. The response's requestId identifies the exact request in our logs.
02

RSX ID 34

Accounts, sessions, sign-in, OIDC, and connected external identities.

RSX ID errors

  • Status
    400
    Meaning
    The state that ties a connection attempt to your account is invalid, expired, or already used. It is single-use and short-lived on purpose, so a redirect cannot be replayed.
  • Status
    400
    Meaning
    The OIDC redirect_uri does not exactly match one registered for this client (exact-match only, so no trailing slashes or path differences).
  • Status
    400
    Meaning
    The password-reset token is invalid, already used, or expired.
  • Status
    400
    Meaning
    The authorization request named a resource (RFC 8707) that is not the one this application is registered for, or named one for an application that is not registered for any. An application bound to an RSX resource, such as RSX MCP, issues tokens for that resource only.
  • Status
    400
    Meaning
    The email-verification token is invalid, already used, or expired.
  • Status
    400
    Meaning
    The application is a public client: it has no secret, so RSX ID requires every authorization request it makes to carry a PKCE code_challenge with code_challenge_method=S256. This one did not.
  • Status
    400
    Meaning
    The effective date is less than 30 days away, the minimum notice the Terms of Service promise for a material change.
  • Status
    401
    Meaning
    The OIDC client_id is not registered with RSX ID, or the client has been revoked.
  • Status
    401
    Meaning
    Login failed: the email/handle or password is incorrect. The same error is returned for an unknown account and a wrong password, on purpose: RSX ID never reveals whether an identifier exists.
  • Status
    401
    Meaning
    The passkey response could not be verified: the sign-in took too long, was already used, came from a page RSX does not accept passkeys on, or the signature did not check out.
  • Status
    401
    Meaning
    The passkey is not registered to any RSX ID. It may have been removed from the account.
  • Status
    403
    Meaning
    The account is temporarily suspended by a platform admin. Login and access are blocked while suspended.
  • Status
    403
    Meaning
    The account has been permanently terminated by a platform admin.
  • Status
    403
    Meaning
    An RSX resource such as RSX MCP asked to act in an application on a person's behalf, and that application does not accept agents from it. Returned only on an internal call between RSX services; an agent sees it relayed as the reason a tool was refused.
  • Status
    403
    Meaning
    The action requires a verified email address, e.g. enabling a developer account.
  • Status
    404
    Meaning
    No RSX ID account exists with the requested id (id/v1, admin surface).
  • Status
    404
    Meaning
    The external identity (a Discord or GitHub user) is well-formed, but no RSX ID has it connected and verified. Distinct from account-not-found, which means an RSX account id didn't exist, and from a 400, which means the request itself was malformed.
  • Status
    404
    Meaning
    No passkey with that id exists on this account.
  • Status
    404
    Meaning
    No session exists with that id (RSX ID admin surface).
  • Status
    404
    Meaning
    The application is not registered for this sign-in flow, or the request did not arrive over an internal service binding. The embedded sign-in form is first-party only.
  • Status
    404
    Meaning
    No current terms revision has that id. It may have been withdrawn.
  • Status
    409
    Meaning
    An account already uses this email address.
  • Status
    409
    Meaning
    The @handle was recently released by another account and is held in a 14-day cooldown, reclaimable only by its prior owner (anti-impersonation).
  • Status
    409
    Meaning
    The requested @handle is already in use or is reserved by the platform.
  • Status
    409
    Meaning
    That external account is already connected to a different RSX ID. One external identity maps to one RSX account, which is what makes a verified link mean anything.
  • Status
    409
    Meaning
    The account already holds the maximum number of passkeys, which is ten.
  • Status
    409
    Meaning
    The terms revision has taken effect and is part of the record, so it cannot be withdrawn.
  • Status
    409
    Meaning
    Another terms notice is pending. Only one may be scheduled at a time.
  • Status
    413
    Meaning
    The image is larger than the 10 MiB limit for a profile picture.
  • Status
    415
    Meaning
    The file is not an image RSX can use as a profile picture, or it could not be decoded. PNG, JPEG, GIF, WebP and AVIF are accepted.
  • Status
    502
    Meaning
    The provider refused to exchange the authorization code for an identity, so the connection could not be completed. Nothing was linked. The detail carries the provider's own message.
  • Status
    503
    Meaning
    RSX ID could not reach the CDN to store or remove the picture. Nothing was changed.
  • Status
    503
    Meaning
    Account linking for that provider has no credentials configured on this server yet.
  • Status
    503
    Meaning
    This RSX ID deployment has no passkey relying party configured, so it cannot run a passkey ceremony.
03

RSX CDN 35

The files/v1 control plane: uploads, objects, quotas, share links, and archive browsing.

RSX CDN errors

  • Status
    400
    Meaning
    The requested entry is a directory record, which has no contents of its own.
  • Status
    400
    Meaning
    Small uploads go up in a single request, and those must declare a sha-256 digest so the stored bytes can be verified against what was promised.
  • Status
    400
    Meaning
    A reported part number is outside the range this session has. The detail names the part and how many parts exist.
  • Status
    403
    Meaning
    The caller asked to act as the CDN's service principal without the scope that permits it, or sent an API key where a user token was required.
  • Status
    403
    Meaning
    Uploading is disabled for this account specifically, by an RSX admin. The detail carries the reason when one was recorded.
  • Status
    404
    Meaning
    The database has a record of the stored bytes but the bytes themselves are not in storage. This is an inconsistency, not a normal missing file.
  • Status
    404
    Meaning
    The archive has no entry at that index. Entry indexes come from the archive listing and are not stable across re-uploads.
  • Status
    404
    Meaning
    No file exists with that id, or it belongs to another account. The two are deliberately the same answer, so an id cannot be probed to learn whether it exists.
  • Status
    404
    Meaning
    No upload session exists with that id. Sessions are per-account, and an expired one is swept away.
  • Status
    409
    Meaning
    The file is already owned by the account it was being transferred to, so there is nothing to change.
  • Status
    409
    Meaning
    The share link has already been revoked, so revoking it again would change nothing.
  • Status
    409
    Meaning
    The archive's index is still being built, or this file has none because it is not a readable archive. The detail says which.
  • Status
    409
    Meaning
    Storage rejected the list of parts when assembling the final object, usually because a part is missing, was re-uploaded, or has a mismatched ETag.
  • Status
    409
    Meaning
    This session is a single PUT, so it has no parts to report. Whether a session is multipart is decided when it is opened, from the declared size.
  • Status
    409
    Meaning
    The share link is live, so there is nothing to restore.
  • Status
    409
    Meaning
    The text preview is still being built, or this file has none because it is not readable text. The detail says which.
  • Status
    409
    Meaning
    The session was aborted, either by you or by the sweep that clears abandoned uploads.
  • Status
    409
    Meaning
    The session has already been completed or aborted, so it cannot take more parts. The detail names its current state.
  • Status
    409
    Meaning
    Finalising was attempted before every part had been written. The detail says how many of the expected parts arrived.
  • Status
    409
    Meaning
    A wipe of this account's files is already running. Starting a second one would race the first.
  • Status
    413
    Meaning
    The entry is above the size the API will extract on its own. The detail names the limit in bytes.
  • Status
    413
    Meaning
    The declared size is above the platform's maximum object size. The detail names the limit in bytes.
  • Status
    415
    Meaning
    The entry is encrypted, or uses a compression method the extractor cannot decode.
  • Status
    500
    Meaning
    The uploaded bytes were stored but their database row could not be read back after insert.
  • Status
    500
    Meaning
    The entry's bytes could not be read out of the stored archive.
  • Status
    500
    Meaning
    The archive is marked as indexed, but the stored index could not be read back.
  • Status
    500
    Meaning
    The file was stored but its database row could not be read back, so no share link could be issued. The bytes are not lost.
  • Status
    500
    Meaning
    The file's row disappeared between reading it and writing the change, which should not happen.
  • Status
    500
    Meaning
    The stored bytes could not be read back for content-type detection during finalise.
  • Status
    500
    Meaning
    The file is marked as having a text preview, but the stored preview could not be read back.
  • Status
    500
    Meaning
    The session row is missing state it cannot work without, such as its storage key or its multipart id. It cannot be finished.
  • Status
    500
    Meaning
    The upload session was created but its row could not be read back, so no session id could be returned.
  • Status
    500
    Meaning
    The session row disappeared while it was being updated, which should not happen.
  • Status
    503
    Meaning
    New uploads are paused across the whole platform by an RSX admin. Existing files are unaffected.
  • Status
    507
    Meaning
    This upload would take the account past its storage limit. The detail states how many bytes the upload needs and how many remain.
04

RSX Registry 25

npm packages, Cargo crates, platform binaries and OCI images.

RSX Registry errors

  • Status
    400
    Meaning
    The release has no artefact for the platform requested, or ships several and the request named none. A Native release's platform is its architecture, x86_64 or any.
  • Status
    400
    Meaning
    The registry distributes npm packages, Cargo crates, platform binaries, OCI images and Native packages. Other package ecosystems are deliberately out of scope rather than not yet built.
  • Status
    403
    Meaning
    The key is valid and holds the right scope, but the package belongs to a different key. A package belongs to the key that created it, because every key on this surface holds the same scopes and scope alone cannot keep two publishers out of each other's namespaces.
  • Status
    404
    Meaning
    The version's metadata is intact but the stored bytes it references are not in storage. This is a registry fault rather than a problem with the request.
  • Status
    404
    Meaning
    No package of that name exists under that protocol, or it exists and this key is not among the consumers it is available to. The two answer the same way on purpose: a package whose audience has been narrowed should not be discoverable by guessing its name.
  • Status
    409
    Meaning
    The review, channel or publication change is not allowed from the release's or repository's current state, for example approving a revoked release, pointing a channel at an unapproved release, revoking a channel's target, or publishing after someone else did.
  • Status
    409
    Meaning
    The review, default or publication change is not allowed from the release's or repository's current state. Examples: approving a revoked release, revoking a package's default, or publishing after someone else already published.
  • Status
    409
    Meaning
    A package of that name already exists under that protocol. Names are unique per protocol, and a withdrawn package still owns its name.
  • Status
    409
    Meaning
    The version was declared but not all of its artefacts have been uploaded and verified, so it cannot be resolved. A release becomes resolvable when its last artefact arrives, never before.
  • Status
    409
    Meaning
    That version is already published, and a published version is immutable: its bytes and metadata are what they were when it was published, permanently. Republishing identical content succeeds as a retry; anything else, including unpublishing and yanking, is refused.
  • Status
    410
    Meaning
    The installer belongs to a revoked release, so the internal repository no longer serves it.
  • Status
    411
    Meaning
    An artefact upload arrived without a Content-Length. Object storage cannot accept a body whose size is not known in advance, so there is nothing to write.
  • Status
    413
    Meaning
    The artefact exceeds the limit for how it is being uploaded. Single-request uploads are bounded by object storage; npm tarballs and Cargo crates are bounded more tightly because their protocols carry the bytes inside the request body.
  • Status
    422
    Meaning
    The uploaded installer failed validation, or does not match the platform, version or signing identity the release and application expect. app/get lists the findings.
  • Status
    422
    Meaning
    The application keys document is not signed by a pinned root key, is not newer than the current one, lists no keys, or has expired.
  • Status
    422
    Meaning
    The release would take the application past its storage quota.
  • Status
    422
    Meaning
    The uploaded bytes do not match what the release declared: a different content digest, a different size, or a digest belonging to no artefact of that release. Every artefact is verified against its declared digest as it is stored, so a mismatch is refused rather than recorded.
  • Status
    422
    Meaning
    The name is not legal in the ecosystem it was published under. Each ecosystem's own rule applies, because a name its client will not install is not a name worth accepting.
  • Status
    422
    Meaning
    The version is not valid for that protocol. npm, Cargo and binary releases take semantic versions; an OCI release takes a tag; a Native release takes Native's own version string, which is never ordered.
  • Status
    422
    Meaning
    The uploaded archive is not a valid Native package, or its manifest does not name the release that was declared. The registry checks archives with the same rules as Native's installer, so this archive would not install either.
  • Status
    422
    Meaning
    The keys document is not signed by a pinned root key, names another repository, is not newer than the current one, or has already expired.
  • Status
    503
    Meaning
    The application repositories' online signing key is missing, malformed or not listed in the current keys document, so nothing was signed or published.
  • Status
    503
    Meaning
    A new generation of an application repository could not be completed. The current generation is unchanged and clients are unaffected.
  • Status
    503
    Meaning
    The Native repository's online signing key is missing or malformed, or the current keys document does not list it, or that document has expired. Nothing was signed or published.
  • Status
    503
    Meaning
    A new generation of the Native repository could not be completed. The current generation is unchanged and clients are unaffected.
05

RSX Node 19

Node registration, desired state, and published builds.

RSX Node errors

  • Status
    400
    Meaning
    The hostname is not in a zone this control plane is allowed to write DNS for.
  • Status
    403
    Meaning
    The API key is valid but does not speak for that node. A node's key may only read and write its own state.
  • Status
    404
    Meaning
    No release asset with that id exists on the releases repository, or it is older than the most recent thirty releases, which is as far back as this lookup goes.
  • Status
    404
    Meaning
    A run names a job, and this node's desired state declares no job with that id. What a run executes is the job's declaration, so there is nothing to run.
  • Status
    404
    Meaning
    The node has no Cloudflare Tunnel yet, so it has no token to seal.
  • Status
    404
    Meaning
    No node exists with that id. A node registers itself on first contact, and must do so before it can be given work or report state.
  • Status
    409
    Meaning
    The hostname has a DNS record this service did not create, and it will not overwrite one.
  • Status
    409
    Meaning
    The hostname is already routed to a workload on another node. A hostname belongs to one node at a time.
  • Status
    409
    Meaning
    The chosen build has no .sha256 file published beside it, so a node would have nothing to verify the download against.
  • Status
    409
    Meaning
    The node has not registered a sealing key, so nothing can be sealed to it. Nodes before rsx-node 0.2.0 have none.
  • Status
    409
    Meaning
    The node's build predates this command kind. Nodes before rsx-node 0.2.0 cannot read a command list containing a kind they do not know, so issuing one would also block every other command to that node until it expired.
  • Status
    409
    Meaning
    The value was sealed to a sealing key the node has since replaced, usually because it was rebuilt. It could never be opened.
  • Status
    501
    Meaning
    This service has no GitHub credentials, so it cannot list published node builds.
  • Status
    502
    Meaning
    Cloudflare refused or failed a change the ingress needed. Desired state was not stored, so the node is still running what it was.
  • Status
    502
    Meaning
    GitHub did not return a download location for the chosen release asset.
  • Status
    502
    Meaning
    A container version could not be resolved to a verifiable image digest. Either RSX Registry answered with an error or without a digest (502), or this service has no registry binding at all (501).
  • Status
    502
    Meaning
    GitHub refused the request for the node's published builds. The detail carries the status GitHub returned.
  • Status
    503
    Meaning
    A hostname asks for Cloudflare Access in front, and the policies to apply are not configured.
  • Status
    503
    Meaning
    A workload declares ingress, and this control plane has no Cloudflare account, allowed zones or pinned cloudflared image configured to serve it.
06

RSX State 6

Persistent consumer state and its audit history.

RSX State errors

  • Status
    403
    Meaning
    The audit source was claimed by a different API key, on the same rule as namespaces: the first key to record an event under a source owns it.
  • Status
    403
    Meaning
    The RSX State namespace was claimed by a different API key. The first key to write to a namespace owns it, because every key on that service holds the same scopes and scope alone cannot keep two consumers apart.
  • Status
    404
    Meaning
    No audit event has that id, or it belongs to a source your key did not claim. The two answer alike on purpose: an event id is opaque, so confirming one exists but is not yours would tell you nothing useful.
  • Status
    404
    Meaning
    Nothing is stored at that key in that namespace on RSX State.
  • Status
    422
    Meaning
    The audit event contains a field RSX State will not store, most often metadata over the 8 KiB serialised limit.
  • Status
    422
    Meaning
    The state value is missing, or it exceeds the 32 KiB serialised limit. The limit is deliberate: RSX State stores documents a program needs in memory, not files.
07

RSX Status 6

The service catalogue, incidents and maintenance windows behind status.rsx.group.

RSX Status errors

  • Status
    404
    Meaning
    No incident exists with the requested id (status/v1).
  • Status
    404
    Meaning
    No maintenance window exists with the requested id (status/v1).
  • Status
    404
    Meaning
    No service with that slug is displayed on the RSX status page (status/v1). A service an operator has taken off the page answers the same way as one that never existed.
  • Status
    409
    Meaning
    A service with that slug is already in the status catalogue. Slugs are the public identifier a visitor bookmarks and an external monitor polls, so they are not reused while the first service exists.
  • Status
    422
    Meaning
    The request matched its schema but described something impossible: an unknown service slug, a maintenance window that ends before it starts, an incident resolving before it began, or a probe run naming no service in the catalogue.
  • Status
    503
    Meaning
    The status service could not produce current state. This is a failure of the status system itself and says nothing about the services it reports on: it is returned instead of a generic error so that a status page renders 'status data unavailable' rather than the last state it happened to remember.
08

RSX Webhooks 7

The GitHub App receiver and the Discord relay it feeds.

RSX Webhooks errors

  • Status
    400
    Meaning
    The delivery body was not valid JSON, so there was nothing to relay.
  • Status
    401
    Meaning
    The delivery's HMAC signature did not verify against the configured secret. The receiver takes no other credential, so an unsigned or mis-signed body is refused outright.
  • Status
    404
    Meaning
    No tracked repository exists with that id. A repository appears here once the GitHub App is installed on it.
  • Status
    422
    Meaning
    The relay bot cannot operate in the target channel or category. This is checked before a repository is switched on, so the gap surfaces here rather than as silence later. The detail names what is missing.
  • Status
    502
    Meaning
    Discord refused to create the relay channel for this repository, after the permission preflight had passed. The detail carries Discord's own message.
  • Status
    502
    Meaning
    Discord refused to delete the relay channel. Nothing was changed, so the repository is still tracked as it was.
  • Status
    503
    Meaning
    The webhook receiver has no signing secret configured, so it cannot verify that a delivery came from GitHub.
09

RSX Projects 27

Internal. Projects, work items, specifications and the activity behind them; a third-party caller does not reach these.

RSX Projects errors

  • Status
    400
    Meaning
    The search expression could not be parsed. Full-text syntax is available: quoted phrases, AND, OR and NOT between terms, and a trailing asterisk for a prefix.
  • Status
    403
    Meaning
    The account is signed in and admitted to RSX Projects, but its role on this project does not permit the operation. This is a project permission, not the RSX ID staff gate.
  • Status
    404
    Meaning
    No activity entry matches that id.
  • Status
    404
    Meaning
    No comment matches that id, or it has been deleted.
  • Status
    404
    Meaning
    No document matches the id, or the project and slug pair.
  • Status
    404
    Meaning
    The document has no revision with that version number.
  • Status
    404
    Meaning
    No label matches that id.
  • Status
    404
    Meaning
    The account is not a member of this project.
  • Status
    404
    Meaning
    No milestone matches that id.
  • Status
    404
    Meaning
    No project matches the id or slug in the request.
  • Status
    404
    Meaning
    No external reference matches that id.
  • Status
    404
    Meaning
    Those two work items are not connected by that relationship.
  • Status
    404
    Meaning
    The specification exists but has no revision with that version number.
  • Status
    404
    Meaning
    No specification matches the id, or the project and slug pair.
  • Status
    404
    Meaning
    No work item matches the id, or the project and number pair.
  • Status
    409
    Meaning
    The record is archived and is read only. Archiving is what remove does on this surface, so the record still exists and still resolves.
  • Status
    409
    Meaning
    The operation would leave the project with no owner, and a project with no owner has nobody answerable for it.
  • Status
    409
    Meaning
    The project is a platform project, such as the documentation docs.rsx.group publishes, and cannot be archived or purged.
  • Status
    409
    Meaning
    A purge was asked for on a live project. Purging destroys a project and everything under it, so it is never the first thing that happens to data somebody is using.
  • Status
    409
    Meaning
    A purge must repeat the project's slug in the confirm field, so that it cannot be done by sending the wrong id.
  • Status
    409
    Meaning
    The relationship is already recorded, or its opposite is. A symmetric relationship is stored once, so it may have been added from the other end, and two items cannot block each other.
  • Status
    409
    Meaning
    Another record in the same scope already uses this slug. Project slugs are unique platform wide; specification and document slugs are unique within their project.
  • Status
    409
    Meaning
    The specification has been superseded and its content is frozen. Its revision history stays readable.
  • Status
    422
    Meaning
    The file could not be read as a specification or a document. It needs a title and a slug, from its front matter or from the request, and the slug must be lowercase letters, digits and single hyphens.
  • Status
    422
    Meaning
    The relationship cannot exist: a work item cannot be related to itself, and both ends must be in the same project.
  • Status
    422
    Meaning
    A specification cannot supersede itself, and a replacement must be in the same project.
  • Status
    422
    Meaning
    The work item named a milestone, label or specification belonging to a different project, or named more than one governing specification. Platform-wide labels are attachable from anywhere; a project's own are not.
10

RSX Access 11

Installing RSX applications and integrations, such as Roxy: whether you may, into what, and the state of what you installed.

RSX Access errors

  • Status
    400
    Meaning
    The link that ties this installation to your RSX ID is invalid, has expired, has already been used, or was started from a different RSX ID. It is single-use and lasts ten minutes, so a Discord redirect cannot be replayed or finished by somebody else.
  • Status
    403
    Meaning
    The application is registered but is not accepting new installations right now. Installations that already exist are unaffected.
  • Status
    404
    Meaning
    No application with that id is registered with RSX Access.
  • Status
    404
    Meaning
    No installation with that id belongs to your RSX ID. An installation that exists but belongs to someone else gets the same answer.
  • Status
    409
    Meaning
    An application with that id is already registered. An id is permanent: it is part of the scope that gates the application, so it cannot be reused for something else.
  • Status
    409
    Meaning
    The installation has already been revoked. A revoked installation stays on record and is never reactivated.
  • Status
    422
    Meaning
    The application cannot be installed into this kind of target, for example a personal installation of an application that only supports Discord servers. The detail lists what it supports.
  • Status
    422
    Meaning
    The target is not one this installation can be recorded against. Either the id is not a valid Discord id, which is 17 to 20 digits, or a personal installation named a Discord account other than the one verified on your RSX ID.
  • Status
    502
    Meaning
    Discord refused to exchange the authorisation code, most often because it expired or was already used. Nothing was installed and nothing was recorded. The detail carries Discord's own message.
  • Status
    503
    Meaning
    RSX Access needed an answer from another service, such as RSX ID confirming your linked Discord account or Discord completing an installation, and could not get one. It refuses rather than decide without it, and nothing was changed.
  • Status
    503
    Meaning
    The application is open, but RSX has not finished setting up its Discord side, so there is nowhere to send you to install it. Nothing was changed.
11

RSX AI 10

Assistants: which model answers, what it may use, and why an answer could not be given.

RSX AI errors

  • Status
    400
    Meaning
    The model is neither a tier nor an enabled text model. The list is an allowlist, so an id that works on Workers AI elsewhere is still refused here unless RSX has checked it.
  • Status
    400
    Meaning
    The request asked a model that does not reason to think before answering.
  • Status
    400
    Meaning
    The request gave tools to a model that cannot use them. RSX refuses rather than drop the tools, because an assistant without them answers confidently that it cannot look anything up.
  • Status
    403
    Meaning
    The request asked for `audience: "staff"`, which gives the assistant RSX's internal knowledge, with a key that does not hold the `ai:knowledge:staff` scope.
  • Status
    422
    Meaning
    The AI Gateway's content policy refused the conversation or the assistant's reply. This is a policy decision, not a fault, and nothing was answered.
  • Status
    429
    Meaning
    The API key has spent its RSX AI budget for the day, measured in Workers AI neurons, or its budget is 0 and it is switched off. Nothing was run. Budgets reset at midnight UTC.
  • Status
    429
    Meaning
    The API key already has as many assistant turns running as it is allowed at once. The cap is what bounds how far past its budget a key can go, because a turn's cost is known only when it ends.
  • Status
    502
    Meaning
    The model finished without writing an answer, usually because its reasoning used the whole output budget. RSX reports it rather than return a blank reply.
  • Status
    502
    Meaning
    Workers AI did not complete the request. The model was unavailable or failed partway, and nothing was answered.
  • Status
    503
    Meaning
    RSX AI could not check the key's usage, and does not run a turn it cannot account for. Nothing was run and nothing was charged.
13

Dashboard 5

Internal. admin.rsx.group answers these to operators; no third-party caller reaches them.

Dashboard errors

  • Status
    400
    Meaning
    The requested grouping is not one the traffic views support. The detail lists the dimensions that are accepted.
  • Status
    400
    Meaning
    A traffic filter was not a value this view accepts, or was longer than the maximum filter length. The detail says which.
  • Status
    400
    Meaning
    The requested time window is not one the traffic views support. The detail lists the values that are accepted.
  • Status
    401
    Meaning
    The Cloudflare Access assertion was missing, failed verification against the team's keys, or was issued for a different application.
  • Status
    403
    Meaning
    The dashboard requires Cloudflare Access and is missing the settings it needs to verify a session, so it refuses every request rather than serving an unauthenticated admin surface.
14

AI portal 14

Internal. ai.rsx.group answers these to staff; no third-party caller reaches them.

AI portal errors

  • Status
    400
    Meaning
    The artifact key was empty or contained path traversal. Keys are checked before they reach storage, so a malformed one is refused rather than resolved.
  • Status
    400
    Meaning
    The modality filter was neither 'text' nor 'image'.
  • Status
    400
    Meaning
    A share was requested for something that is neither a conversation nor a generation.
  • Status
    400
    Meaning
    The status filter was not one of the states a generation can be in.
  • Status
    400
    Meaning
    A chat request arrived with no message to send.
  • Status
    400
    Meaning
    A generation request named no model to run.
  • Status
    400
    Meaning
    An image request arrived with no prompt.
  • Status
    400
    Meaning
    A share was requested without saying what to share.
  • Status
    400
    Meaning
    Only an image generation with a stored artifact can be shared on its own. A text generation has no standalone page.
  • Status
    400
    Meaning
    The model id is not in the portal's registry, or is registered but disabled. The allowlist is what stops a typo becoming a call to an arbitrary model on the account.
  • Status
    404
    Meaning
    No stored artifact exists at that key. A generation that failed or was blocked records a row but produces no bytes.
  • Status
    404
    Meaning
    No conversation exists with that id, or it has been archived. Archiving hides a conversation without deleting it, so an archived id reads as missing on the routes that expect a live one.
  • Status
    404
    Meaning
    No generation exists with that id.
  • Status
    404
    Meaning
    No live share exists with that token. Revoked shares are kept as a record of what was once public, but they stop resolving.
15

Example service 1

The deprecated reference service, kept as the template every real service was copied from.

Example service errors

  • Status
    404
    Meaning
    No widget exists with the requested id (example/v1, the reference service).