RevenueHogdocs
API

Errors

Every HTTP status and error body the RevenueHog APIs return, what each one means, and whether your client should fix the request, retry with backoff or drop it.

JSON endpoints return errors as { "error": "<message>" }. Store notification endpoints return plain text.

Status codes

StatusMeaningWhat to do
200Accepted. On SDK endpoints this includes writes that were dropped because the bundle ID resolved to nothing.Nothing. Verify in the dashboard if data does not appear.
201Created (API key, feedback via API key).
204CORS preflight.
400Malformed JSON, a missing required field, or a validation failure.Fix the request. Do not retry as-is.
401Invalid credential.SDK: clear the device token and re-enroll once. API key: check or replace the key. Session: sign in again.
403API key lacks the required scope.Use a key with feedback:write.
404Unknown resource, or an app outside your workspace.Check IDs.
409A state conflict (experiment lifecycle, missing configuration).Read the sentence; change state first.
429Rate limited.Wait retry-after seconds, then retry.
5xxServer error.Retry with exponential backoff.

The SDKs retry 429, 5xx and network errors up to 3 times, then queue; they drop every other 4xx.

Error messages by endpoint

EndpointMessages
All SDK writesinvalid JSON, invalid device token (401), rate_limited (429)
attestmissing keyId, attestation, challenge or bundleId, attestation too large, invalid or expired challenge, attestation verification failed, app not connected
identifymissing appUserId, missing bundleId, attributes must be a small JSON object
attributemissing appUserId, missing bundleId, missing originalTransactionId
eventsmissing bundleId, missing events, too many events (max 50)
adservicesmissing bundleId, missing installId, missing token
paywallmissing bundleId, missing installId, missing appUserId, missing entitlement
paywall/impressionmissing bundleId, missing installId, missing experimentId
Feedback (both paths)invalid kind, message is required, message is too long (max 5000), data must be an object, metadata must be an object, data is too large (max 8192 bytes), metadata is too large (max 8192 bytes), rating must be an integer from 1 to 5; SDK path also missing bundleId
/api/v1/feedbackinvalid API key (401), insufficient scope (403)
/api/settings/api-keysmissing name, name too long, invalid mode, missing id, not found
/api/settings/sdk-devicesmissing deviceId, not found
Session endpointsunauthorized (401)
/api/export/revenueunknown app (404)

Paywall management sentences are listed on Paywall management.

Last updated on

On this page