Skip to Content
ReferenceSession outcomes and timing

Session outcomes and timing

Learner-visible error categories

CategoryTypical triggerOutcome
Missing parametersNo non-empty rolePlayId in the launch URLError before role-play loading
No authentication tokenParent sends an empty initial token payloadAuthentication error
Expired access tokenToken refresh fails, returns empty, or exceeds ten secondsAuthentication error
Connection issuesBrowser offline or role-play API/network failureGeneral connection error
Bot connection problemsInvalid SCAI data, credential/signalling timeout, or exhausted recoveryVoice-session error
Microphone permission deniedBrowser or iframe cannot provide audio inputMicrophone error
Feedback analysis errorEmpty transcript, rejected evaluation request, dependency failure, or invalid AI responseNo partial feedback is shown

The error page offers a restart that reloads the application. An embedded host must be ready to complete the launch and token handshake again.

Attempt outcomes

End conditionEvaluationFrontend analytics terminal event
Learner confirms FinishYesscl.session_finished_by_user
Learner confirms CancelNoscl.session_cancelled_by_user
Strict limit reachedAvailable after confirmationscl.session_ended_by_time
Flexible overtime exhaustedAvailable after confirmationscl.session_ended_by_time
Active connection failsNo automatic evaluationscl.session_ended_by_error
Page hidden/unloaded mid-attemptNo automatic evaluationBackend receives scl.session_unloaded when delivery succeeds

Analytics events are emitted only when analytics is configured and a server-issued session ID exists.

Strict timing

The timer starts after the SCAI call is accepted. During the configured warning window, the UI marks the approaching deadline. At the planned duration, SCL:

  1. Stops recording.
  2. Locks practice controls.
  3. Sets elapsed time to the exact configured duration.
  4. Shows the time-limit dialog.
  5. Lets the learner continue to evaluation.

Flexible timing

At the planned duration, the UI enters overtime and shows the remaining allowance. At planned duration plus overtime, SCL locks the practice and lets the learner continue to evaluation.

If the backend does not provide an overtime limit, the current browser fallback is 300 seconds. Content owners should set an explicit value so the intended rule does not depend on a client default.

Warning calculation

The warning window cannot begin before the session starts. If the configured warning exceeds the planned duration, SCL effectively warns from the beginning of active practice.

Evaluation duration

The frontend sends active elapsed seconds with the transcript. A role-play may include duration as one evaluation indicator, but only if its criteria define the target, deviation formula, score bands, and weight. Timing mode alone does not determine an evaluation score.

Voice and identity recovery

  • Media failure triggers an ICE restart attempt.
  • Unexpected WebSocket closure after call acceptance can be retried up to three times.
  • Token refresh waits up to ten seconds for the parent response.
  • NO_INPUT re-prompts do not become normal transcript turns.
  • Empty recognition can appear as a warning.
  • Only allow-listed conversational metadata becomes transcript content.

Time spent obtaining credentials, waiting for microphone permission, or negotiating the call is not included in active practice time.