Google Chrome / Edge forbid synchronous requests during unloading the pages. But sending requests during unloading pages is the backbone of a lot of SCORM packages which the scores this way, and sending synchronous request is the base of the OpenOlat SCORM adapter API.
The solution here is the unify the communication of the adapter. If the browser make an exception sending a synchronous request, the API calls are stored and queued until the method "LMSFinish" is called. Then the queued commands are sent to the server via the Beacon API to ensure the browser sent them in totality.