VoidhashDocs
DevelopersHelp centerGuidesAPI reference
Dashboard
Get started
Introduction
Quickstart
How Voidhash works
Glossary
Versions and releases
Concepts
Teams, projects and environments
API keys
Products and perks
Offers
Subscription lifecycle
People and identity
Events
Features
Paywalls in your app
Feature flags and A/B tests
Paywall components
Push notifications
Ad attribution in your app
Client SDKs
React Native
Swift
Kotlin
Web
Your backend
Node.js
PHP
Go
Rust
Other languages
Payment sources
Forward store notifications
Developer tools
CLI
MCP server
Query analytics with VoidQL
Kotlin SDK
Kotlin quickstart
Display a paywall
Make and restore purchases
Check access
Identify users
Evaluate feature flags
Capture analytics
Track screens
Development mode
Kotlin SDK reference
Errors
Diagnostic codes
Troubleshooting

Diagnostic codes

Every diagnostic the Kotlin SDK reports for failures it handles itself, and what each means.

Diagnostics report failures the SDK handled itself. They never throw. Receive them with the onDiagnostic option; see Errors for the handler.

CodeMeaning
AUTHENTICATION_FAILEDVoidhash rejected the publishable key. Requests pause and queued data is kept. identify or reset retries the key at once.
AUTHENTICATION_RECOVEREDA retry with the key was accepted.
CIRCUIT_OPENVoidhash failed 5 times in a row. Requests are skipped and the cache is served until a retry succeeds.
CIRCUIT_CLOSEDRequests go through again.
SCHEMA_FETCH_FAILEDThe project configuration couldn't be loaded. It's retried.
SCHEMA_DECODE_FAILEDThe project configuration response couldn't be read.
TRANSACTION_SYNC_DEFERREDA purchase is still queued after a failed or unconfirmed delivery. It's retried.
TRANSACTION_REJECTEDVoidhash refused a purchase, for example because Google Play isn't set up for the package name. It's sent again on the next launch, or after 6 hours.
TRANSACTION_NOT_DURABLEA purchase couldn't be stored on the device. Delivery is still attempted.
TRANSACTION_OUTBOX_BACKLOGMore than 1,000 purchases await delivery. None was dropped.
PURCHASE_FINISHED_BEFORE_SYNCVoidhash hadn't recorded a purchase 48 hours after payment, so the SDK acknowledged it to stop Google Play's refund. The SDK still delivers it.
PERSON_WRITE_REJECTEDA queued identify or attribute update was refused, or a sign-in couldn't merge an anonymous ID another account owns.
ANALYTICS_SEND_FAILEDEvents weren't delivered. They're retried.
ANALYTICS_EVENT_DROPPEDEvents were dropped at the 1,000-event queue limit (reported at most once a minute), or Voidhash refused one event.
ANALYTICS_CONSENT_DENIEDAn event, screen or attribute wasn't collected because consent isn't granted. Reported once until consent is granted.
ANALYTICS_EVENT_INVALIDAn event had a blank name or no distinct ID.
INSTALL_ATTRIBUTION_DEFERREDGoogle Play or a Meta app couldn't answer about the install yet. A later launch asks again.
INSTALL_ATTRIBUTION_ABANDONEDThe SDK stopped asking: no Google Play, or 10 launches without an answer.
SCREEN_MAPPER_FAILEDYour mapScreen threw, so that screen wasn't captured.
CACHE_READ_FAILEDAn unreadable cache entry was discarded.
CACHE_WRITE_FAILEDA value couldn't be stored. It stays in memory and is stored with the next successful write.
QUEUE_IO_FAILEDA queue file couldn't be read or written.
CONNECTIVITY_OBSERVATION_UNAVAILABLEThe SDK can't observe network changes. Queues are still retried on a timer.
SECONDARY_PROCESS_INERTVoidhash was configured outside the main process and does nothing there. See Create the client.
DIAGNOSTICS_DROPPEDYour handler fell more than 1,000 reports behind; the oldest were dropped.

Next steps

  • Errors the SDK throws.
  • Troubleshooting by symptom.
  • Error codes across platforms.

Something wrong or missing on this page? Tell us by email or on Discord.

PreviousErrorsNextTroubleshooting

On this page

Next steps