Skip to main content
The SDK surfaces three types of failure: initialization failures, reward delivery failures, and maintenance mode. Each requires a different response. The guiding principle is the same in all cases: never let a ZBD failure break your game.

Initialization failures

Init can fail for several reasons. For network, VPN/proxy, and attestation failures, call ShowModal() — it explains the reason to the player and provides a retry path. Maintenance and unsupported region are handled differently (see below), because neither has a retry path. Never silently fail.

Common init failure causes

Do not tie SDK initialization to any core gameplay logic. If Init fails, the game must continue working normally. Players who cannot earn rewards should not be blocked from playing.

Maintenance mode

The ZBD platform occasionally enters maintenance mode. This is surfaced as a maintenance flag on SDK responses. It is not an error.
Maintenance mode can begin at any time, including mid-session. Handle it on every SDK response, not just during initialization.
Maintenance periods are temporary. Do not log them as errors or alert your on-call. They are expected operational events.

Reward delivery failures

Reward delivery can fail independently of initialization. The most common causes are network interruptions and maintenance mode.
Do not show reward failure messages to players. A failed reward is invisible to the player. The gameplay moment should feel the same whether the reward was delivered or not.

Full error scenario matrix

Platform differences

Test iOS and Android separately. The SDK’s attestation behavior, WebView rendering, and modal presentation can differ between platforms in ways that are not always obvious during development. Pay particular attention to:
  • Android back button: Handle the back button to close the modal if it’s open. See Integration.
  • iOS foreground transitions: The modal may need explicit handling when the app returns from background.
  • VPN detection: VPN behavior differs between iOS and Android network stacks. A VPN that passes on one platform may be flagged on the other.