Discussions

Ask a Question
Back to all

LiveAvatar FULL mode: audio works but no remote participant/video in LiveKit

We’re integrating LiveAvatar FULL mode. /v1/sessions/start returns a livekit_url and livekit_client_token (identity is client). We connect with @livekit/react-native using
that token. Audio plays (we hear the avatar), but remoteParticipants is always empty and no trackSubscribed events fire, so we can’t render video. Logs show no participants
before disconnect. Sample start payload (token redacted):

{
"session_id": "b9f2fc0d-1d15-4129-8d48-52b1e4eaf1f8",
"livekit_url": "wss://heygen-feapbkvq.livekit.cloud",
"livekit_client_token": "",
"max_session_duration": 1200,
"ws_url": null
}

Client connect code (RN):

const room = new RoomCtor({ dynacast: true, adaptiveStream: true });
await room.connect(targetUrl, livekitToken, {
autoSubscribe: true,
audio: true,
video: false,
});

// events
room.on('trackSubscribed', (track, publication, participant) => {
const kind =
publication.kind ?? (track && 'kind' in track ? (track as any).kind : '') ?? '';
console.log('LK track subscribed', { kind, identity: participant.identity });
if (kind === 'video') {
setSantaParticipant(participant);
setSantaVideoTrack(track as RemoteVideoTrack);
} else if (kind === 'audio') {
if (!santaSidRef.current) santaSidRef.current = participant.sid;
setSantaParticipant((prev) => prev ?? participant);
}
});
room.on('participantConnected', (p) =>
console.log('LK participant connected', p.identity)
);
room.on('participantDisconnected', () => {
setSantaParticipant(null);
setSantaVideoTrack(null);
santaSidRef.current = null;
});

On teardown:

console.log('LK teardown participants', Object.keys(room.remoteParticipants || {}));

In all calls, remoteParticipants is [], no trackSubscribed logs fire, yet we hear the avatar audio. If the avatar is joining the room, what identity does it use? Could it
be using the same identity (client) so it’s not exposed as remote? Is there anything else required in FULL mode (livekit_config?) to ensure the avatar publishes video to the
returned room/token? Any guidance is appreciated.