Skip to main content

The server entry fails in the browser

digital-human/server intentionally fails closed in browser builds. Move the client creation and every API-key operation to a server route. Import browser types from digital-human and React helpers from digital-human/react.

Camera or microphone permission is denied

  • Confirm the page uses HTTPS outside local development.
  • Check browser and operating-system permissions.
  • Use LiveKit’s PreJoin to let the user select available devices.
  • Pass audio={false} or video={false} when your experience does not require that track.

Remote audio does not start

Browsers may block audio until the user interacts with the page. Keep LiveKit’s start-audio UI available and begin the call from a user gesture.

The digital human is not visible

  • Confirm that the session is active and connection is not null.
  • Confirm the page contains DigitalHumanVideo within DigitalHumanRoom.
  • If you passed participantIdentity, verify that it matches the remote participant.
  • Show a fallback while waiting for the remote camera track.

The API returns 403

Check that the key has the scope required by the method. Session creation, reading, and ending have separate scopes.

The API returns 409

An idempotency key was reused for a different request or for a session that is already terminal. Generate a new key for a new intended session.

The session stopped accepting its token

Call your authenticated server refresh route. That route should call getSession(sessionId) and return the new SessionConnection if the session is still connectable.