session.complete() to finalize the lesson. This triggers server-side scoring, flushes the final time tracking data, and returns a comprehensive result object.
Complete a lesson
score, accuracy, totalQuestions, correctQuestions, timeSpentSeconds, and more.
See the reference for the full return type.
What happens under the hood
session.complete() does three things in sequence:
- Server: reads progress. For an unfinalized linear lesson it attempts
finalStudentAssessmentResponse(), catches errors, and reads progress again. For an adaptive lesson it uses the current progress without that finalization call. - Client: calls
activity.end()to flush the final time tracking window as aTimeSpentEvent - Client: returns a merged result combining the server response with client-side timing data
Caliper event flow
Managed Lessons split Caliper responsibility between the SDK and PowerPath:
The SDK does not send an
ActivityCompletedEvent for Managed Lessons. PowerPath is the source of truth for scoring, XP calculation, and OneRoster gradebook updates.
This means you do not need to calculate XP or report completion metrics yourself — PowerPath handles it when session.complete() calls the finalization endpoint.
Handle time tracking errors
The final time flush and scoring are separate.timeTrackingSent: false means the tracker’s end() call rejected. A true value is not delivery confirmation: heartbeat network errors are normally reported internally and swallowed, so they may leave this flag true.
These operations delegate to PowerPath and return its progress. For linear lessons, check
finalized before displaying a completed result. The SDK catches finalization errors and re-reads progress, so a resolved promise can still return finalized: false. Adaptive completion returns the current score and marks the SDK result finalized; it does not itself establish that a mastery threshold was reached.Render results
Use the completion result to build a results screen:Next steps
Attempt history
Review past attempts and per-question data
Reference
Parameters, properties, methods, and return types