Data Loss in Learn

iSpring Learn LMS is a complex system that works on the Internet using the HTTP or HTTPS protocols. During course completion by a student, a lot of requests are sent to the ispringlearn.com server for further processing and recording statistics in the database.

Sometimes, a learner completes a course or a quiz and reaches the result slide. An email with the results may be successfully sent, but the course status is not changed. In other words, data is still pending and cannot be sent to the iSpring Learn system. In most cases this problem is resolved automatically after some time, when the user attempts to log in again.

This article describes how to avoid issues with data loss (usually pending) and reveals the mechanisms of data transfer between the learner’s computer and the iSpring Learn portal.

Common guidelines

For Learners

  • Use a modern browser that has perfect HTML5 support. Avoid older versions of Internet Explorer IE7 or IE8 as well as the compatibility mode in newer IE versions. Recommended browsers:

       - Google Chrome

       - Mozilla Firefox

  • Don’t use incognito mode.

  • Avoid using proxy extensions for browsers. These extensions may offer traffic compression, VPN, CDN, proxy etc. All of them use proxy-type connections. If you have some of them installed, deactivate them in your browser. Here are some of the extensions:

       - Unlimited Free VPN - Hola

       - Proxy SwitchyOmega

       - frigate

  • If the course statistics weren’t updated, opening your ispringlearn.com portal again should help. If you perform any actions (e.g., read comments or see the list of courses), the pending attempt details will be sent.

  • Don’t close the Learn portal right after closing the course popup window. Let the system process the results and view the list of other tasks.

  • If you use iPad, use the iPad Learn app to complete courses and download courses you are going to take. To do that, just click Available offline in the app.

For Administrators

  • Make sure that the user who completes the course is registered with the system. Unregistered users can view public courses and complete quizzes, but their details won’t be saved in the database. Use the self-registration feature of Learn if you need to invite users.

  • Avoid using traffic caching proxies in the company’s network because they can cause sporadic issues in communication with complex network systems.

  • If you use HTTPS in iSpring Learn, your proxy should transfer HTTPS requests (our SSL).

Client side

A learner performs a lot of actions, such as: start presentation, view a slide, start a quiz, answer a question, etc. This data is very important for the system and should be fully captured. Also, periodically (every 15 seconds of user inactivity), the presentation player sends a heartbeat to the server to verify that the course is still being completed.

All these events are sent in the form of requests to ispringlearn.com. Every request is duplicated and saved in the Local Storage (the browser’s encrypted catalog on the client’s computer) and remain there until the respective verification reply from ispringlearn.com comes back. If some of the details are pending in Local Storage, they will be automatically uploaded as soon as the learner’s portal is available again.

It means that even if the course results were not successfully received by ispringlearn.com, all the necessary data is securely saved on the client’s computer.

Important: Local Storage is available in new HTML5-compatible browsers only. IE7 and 8 don’t have this ability, therefore Flash storage is used instead. It is not very reliable though.

You can see in the chart above that the first part of the course completion was successfully sent to ispringlearn.com and the correct response was received. Imagine that an unexpected issue occurs right after that. The client’s web browser window is closed and the rest of the completion details remain in the Local Storage.

Solution: Open the company’s ispringlearn.com portal on the same computer, and the rest of the data will be pushed to the server.

How a course communicates with the LMS

ispringlearn.com sends a certain JSON response back to the client’s computer on every request. Each JSON response has a unique security code. As soon as this response reaches the client’s browser, it goes through a validation process. If the response is invalid, the course tries to send this data again to the LMS. This ensures that all data is transferred flawlessly.

Communication chart

Let’s take a closer look at proxy issues. The diagram below shows the learner’s communication with iSpring Learn via proxy. It works OK in the first case and causes an issue in the other case.

What’s wrong with communication in the second case? For some reason, the client’s proxy doesn’t transfer it to the LMS and sends its own response back. Usually, it is an HTML response that describes an issue (a network administrator can get it for clarification).

Common issues are:

  • 502 Bad Gateway

  • 503 Service Unavailable

  • 504 Gateway Timeout

  • 403 Forbidden

Data loss

Data loss is really a very rare case and a system administrator can use manual course completion for these cases. Email our support if you have any problems with saving the results in the learning portal and the common guidelines didn’t help.