Skip to main content
Everything the SDK throws is an SDKException, wrapping a proto-backed error so the same code and category cross every language binding.

Codes worth handling

featureNotAvailable

Two cases you will actually meet:
Flutter names this factory featureNotAvailable, where Kotlin calls it unsupportedCapability. Same condition, different name.

deviceId throws

Guard on isReady:

Errors from a Stream

Failures arrive through the stream’s error channel:
Or with a subscription:
onError is easy to forget on a subscription, and an unhandled stream error becomes an uncaught async exception rather than a crash you can see.

Cancellation

Cancelling a subscription cancels the generation and is not an error.

Checking mounted

Every await in a State is a place the widget may disappear:

Reporting