LifterLMS quizzes are a critical component of many online courses, allowing instructors to assess student understanding and track progress. When a student submits a quiz, their answers should be saved, graded automatically, and the results recorded in their course progress. However, sometimes quiz answers are not saved at all, or they disappear after the student navigates away from the page, leaving instructors with incomplete data and students with incorrect grades.
This problem can be particularly damaging for courses where quiz scores determine course completion or certification. Students who believe they have answered questions correctly may receive failing grades because their answers were not recorded. The issue may affect all quizzes or only specific ones, and it may appear suddenly after updating LifterLMS, a quiz add-on, or the WordPress theme.
The most common cause of this problem is a JavaScript conflict with another plugin or the theme that prevents the quiz answer data from being sent to the server. Another cause is that the PHP max_input_vars limit is too low to process all the quiz answers, especially for quizzes with many questions. Server timeout issues can also cause quiz submissions to fail, particularly for quizzes with essay questions or large file uploads.
Why LifterLMS quiz answers fail to save
LifterLMS uses JavaScript to collect quiz answers and submit them via AJAX to the server for processing. When a student clicks the “Submit Quiz” button, the JavaScript bundles all answers into a data object and sends it to the server. If any JavaScript error occurs before this process completes, the answers will never reach the server, and the quiz submission will fail. The student may see an error message or may simply see the page refresh without any indication that their answers were not saved.
Another common cause is that the PHP max_input_vars limit is too low for quizzes with many questions. Each answer may be sent as a separate input variable, and if the total number of variables exceeds the server limit (typically 1000), some answers will be dropped silently. This is especially common with quizzes that have 50 or more questions, or quizzes with complex question types like matching or ordering that generate multiple variables per question.
Server timeouts can also cause quiz submissions to fail, particularly for quizzes that require significant processing time. This includes quizzes with essay questions that require manual grading triggers, quizzes with file uploads, or quizzes that send email notifications to multiple recipients. Increasing the PHP max execution time can resolve these timeout issues.
How to check if quiz answers are being received by the server
Open the browser developer tools by pressing F12 and navigate to the Network tab before submitting a quiz. Submit the quiz and watch for the AJAX request that is sent to the server. Click on this request to inspect the payload. The payload should contain all of the student’s answers. If answers are missing from the payload, the JavaScript is not collecting them correctly. If the payload contains all answers but the response indicates an error, the issue is on the server side.
Step by step guide to fixing LifterLMS quiz submission problems
Follow these steps in order to restore proper quiz answer saving in LifterLMS. Start with the simplest solutions before moving to more advanced troubleshooting steps.
- Increase PHP max_input_vars to 3000 by adding a line to the .htaccess file or php.ini
- Increase PHP max execution time to 300 seconds in the wp-config.php file
- Temporarily deactivate all other plugins to test for JavaScript conflicts
- Switch to a default WordPress theme to test if the theme interferes with quiz submission
- Clear all caches including plugin cache, CDN cache, and browser cache completely
- Check the browser console for JavaScript errors when submitting the quiz
- Test the quiz with a small number of questions to see if the issue is related to quiz size
- Check the PHP error logs for any fatal errors during quiz submission
- Update LifterLMS to the latest version available from the official website
- Recreate the problematic quiz from scratch if the existing quiz is corrupted
How to increase PHP max_input_vars for LifterLMS quizzes
Add this line to the .htaccess file in the root WordPress directory to increase the max_input_vars limit. If your server does not use .htaccess, add the line to the php.ini file instead. After making the change, restart the web server and test the quiz again. You can verify the new limit by creating a simple PHP info file or using a plugin like WP Server Health Check.
php_value max_input_vars 3000
LifterLMS quiz troubleshooting reference table
Here is a reference table for diagnosing quiz answer problems in LifterLMS based on specific symptoms you might encounter.
| Symptom | Most likely cause | Recommended solution | Quiz answers not recorded for any student | JavaScript conflict or server configuration issue | Check browser console and increase max_input_vars | Quiz works for some students but not others | Browser-specific issue or user role permissions | Test with different browsers and check user role capabilities | Quiz answers saved but grades not calculated | Grading function issue or database corruption | Check quiz settings and repair database | Quiz submission times out for long quizzes | PHP max execution time too low | Increase max execution time to 300 seconds |
|---|