Webbu Docs

Error Codes

HTTP status codes and error responses of the Webbu API.

Error format

Errors are JSON objects with an error field. Some include more detail:

{
  "error": "Forbidden",
  "message": "Requires one of the following roles: owner, admin",
  "code": "subscription_required",
  "details": []
}
FieldWhen present
errorAlways: a short description
messageAuthentication and authorization errors, and insufficient credits
codeMachine-readable code for some errors (see below)
detailsValidation errors, e.g. Invalid buffer configuration
credits / requiredInsufficient credits (429)

A body that isn't valid JSON is rejected before it reaches the API, with 400 and an HTML "Bad Request" page.

Success codes

StatusReturned by
200 OKReads, updates (PATCH) and actions such as DLQ retry
201 CreatedCreating projects, buffers, API keys and clones
202 AcceptedIngest: the webhook is stored and will be delivered
204 No ContentDeleting projects, buffers and DLQ entries, revoking API keys

Ingest responses:

{ "status": "accepted", "messageId": "5b0c6f0e-…", "itemId": "0e6d1c2b-…" }
{ "status": "accepted", "messageId": "evt_unique_123", "duplicate": true }

Client errors

400 Bad Request

The request is invalid. Examples:

errorCause
projectId and name are requiredMissing fields when creating a project
bufferId, projectId, and name are requiredMissing fields when creating a buffer
Invalid buffer configurationBuffer settings failed validation; see details
Project not foundCreating a buffer in a project that doesn't exist or isn't yours
Cannot delete project with existing buffersDelete the project's buffers first
Buffer is disabledIngest into a disabled or auto-paused buffer
Buffer does not belong to this projectWrong project ID in the ingest URL
Could not extract group key from requestThe payload and headers don't contain the group key
name is required / Invalid roleInvalid API key creation request

401 Unauthorized

Authentication failed.

error / messageCause
Missing or invalid Authorization headerNo X-API-Key and no Authorization: Bearer header
Invalid or revoked API keyThe key doesn't exist or was revoked
Invalid or expired tokenThe Firebase ID token is invalid or expired
Missing signature header / Invalid signatureIngest with source verification enabled

403 Forbidden

You're authenticated but not allowed to do this.

error / messageCause
Requires one of the following roles: …Your role is too low; see roles
Access denied to this customerThe request names another account's customerId
API key does not have access to this bufferIngest with a key from another account or not scoped to the project
Cannot create API key with higher role than your ownKey creation above your role
Cannot create API key with broader project access than your ownKey creation outside your project scope
Email address must be verified (email_not_verified)Password account without a verified email
User not associated with a customerThe signed-in user has no account yet
An active subscription is required to buy credit packs (subscription_required)Credit pack checkout without a subscription

404 Not Found

The resource doesn't exist or belongs to another account: Buffer not found, Project not found, DLQ item not found, API key not found, Credit pack not found.

409 Conflict

errorCause
Project already exists / Buffer already existsThe ID is taken. IDs are global, so choose unique ones
Maximum 10 active API keys per customerRevoke unused keys first
API key is already revokedNothing to do
Credit pack is not available for purchase yet (PACK_NOT_AVAILABLE)The pack can't be bought yet

429 Too Many Requests

On ingest, your credit balance is too low for the payload:

{
  "error": "Insufficient credits",
  "credits": 3,
  "required": 5,
  "message": "Please add more credits to continue receiving webhooks"
}

See Credits & Billing. During extreme bursts the hosting platform itself may also return 429 without a JSON body; retry with backoff.

Server errors

500 Internal Server Error

An unexpected error. Retry with exponential backoff; if it persists, contact support with the endpoint, time and request.

503 Service Unavailable

A dependency is unavailable, for example Payment provider not configured on billing endpoints. Retry later.

Machine-readable codes

codeStatusMeaning
email_not_verified403Verify your email address before using the API with a password account
subscription_required403Credit packs require an active subscription
PACK_NOT_AVAILABLE409The credit pack can't be bought yet

Handling errors

  1. Check the status code before reading the body
  2. Retry 5xx and platform 429/503 responses with exponential backoff (for example 1 s doubling up to 60 s)
  3. Don't retry other 4xx without changing the request; for 429 Insufficient credits, add credits first
  4. Log the error, message and code fields
  5. Use stable message IDs (messageId in the body or X-Idempotency-Key) so retried ingest requests aren't stored twice

On this page