AvatarController exposes two independent state enums that you can observe through callbacks.
ConversationState
The current playback state of the digital human.
Subscribe to state changes through
AvatarController.onConversationState.
Android also has an intermediate
Active state. It means avatar speech audio has been received, but playable motion data is not ready yet.ConversationState | iOS ConversationState | Android ConversationState | Flutter ConversationState
ConnectionState
Only available in Direct Mode. In Platform Integrations and Backend Mode integrations, the connection is managed by the agent worker, TEN graph, or developer backend, and is not exposed through
AvatarController.ConnectionState.
Subscribe to state changes through
AvatarController.onConnectionState.
Detailed definitions for each platform: Web ConnectionState | iOS ConnectionState | Android ConnectionState | Flutter ConnectionState
Errors (onError)
Subscribe through AvatarController.onError. Errors are grouped by category:
Complete error enum, including WebSocket close codes: Resources -> Error Codes.

