Skip to main content
When an API request fails, Flux returns a standard JSON error response containing a message and an appropriate HTTP status code.

Standard HTTP status codes

CodeStatusDescription
400Bad RequestThe request was malformed or missing required parameters.
401UnauthorizedAuthentication failed. Missing or invalid Bearer token / signature.
403ForbiddenYou are authenticated but lack the necessary permissions or service entitlements.
404Not FoundThe requested resource (file, user, endpoint) does not exist.
409ConflictThe resource already exists (e.g., email already registered) or state conflict.
429Too Many RequestsRate limit exceeded. Back off and try again later.
500Internal Server ErrorSomething went wrong on our end (e.g., Convex database timeout).

Common error messages

Here are specific error messages you might encounter across our services and what they mean:

Authentication & Flux Pass

  • Invalid credentials (401): Incorrect email or password.
  • Invalid or expired verification code (401): The 2FA or email verification code is wrong or expired.
  • Invalid or expired refresh token (401): The refresh token has expired or was already rotated. You must log in again.
  • User already exists (409): Attempting to register an email that is already verified.

Metadata Service

  • invalid_dek (400): The provided Data Encryption Key is malformed or invalid.
  • file_not_found (404): The requested fileId does not exist in the database or cache.
  • convex_timeout (500): The underlying Convex database took too long to respond.

Webhooks

  • Missing signature (401): The X-Fluxdrop-Signature header was not provided.
  • Invalid signature (401): The HMAC SHA-256 signature does not match the payload.