Score passback is not occurring in the following edge case:
Students are playing widgets in an LTI context
Students complete a widget and then select Play Again to begin a new session immediately afterwards
The token GET parameter, assigned at the start of the subsequent play, is sometimes missing from the score screen URL the students are navigated to. The LTI event hook in FuelPHP that looks for score updates doesn't see the token parameter, and thus doesn't send anything back to the LTI provider.
We put a lot of work into the widget player to ensure logs are immutable, queued properly, and transmitted properly before a play is finished. If played in an LTI context, a score_url property is included in the response from play_logs_save when the end log is received. However, score screen URLs are saved on a different state object, and under certain circumstances the scoreScreenURL state value is not updated before window.location.assign(scoreScreenURL) is called.
Score passback is not occurring in the following edge case:
token
GET parameter, assigned at the start of the subsequent play, is sometimes missing from the score screen URL the students are navigated to. The LTI event hook in FuelPHP that looks for score updates doesn't see thetoken
parameter, and thus doesn't send anything back to the LTI provider.We put a lot of work into the widget player to ensure logs are immutable, queued properly, and transmitted properly before a play is finished. If played in an LTI context, a
score_url
property is included in the response fromplay_logs_save
when the end log is received. However, score screen URLs are saved on a different state object, and under certain circumstances thescoreScreenURL
state value is not updated beforewindow.location.assign(scoreScreenURL)
is called.