Tutor LMS Troubleshooting Guide: How to Diagnose Any Problem
A step-by-step method to find out why Tutor LMS is not working: versions, conflicts, logs, caching, AJAX, enrollment data and the most common causes of each symptom.
Checked against the plugin source: Tutor LMS 4.1.3, Tutor LMS Pro 4.1.3

When Tutor LMS stops working, the fastest fix comes from a calm, systematic check rather than random changes on a live site. This guide gives you the method we use, then lists the usual causes for the most common symptoms. It applies to Tutor LMS 4.x and Tutor LMS Pro.
Step 0: Protect your students
Before you change anything, take a full backup (files and database). If you can, make a staging copy and troubleshoot there. Many hosts create staging sites with one click.
Step 1: Describe the problem precisely
- What exactly happens, and what should happen?
- Who is affected: everyone, logged-in students, one course, one payment method, mobile only?
- When did it start, and what changed then (an update, a new plugin, a setting, a host move)?
"Since Tuesday's update, students using PayPal are not enrolled" points almost straight at the cause. "Tutor LMS is broken" does not.
Step 2: Check versions
Go to Plugins and note the versions of Tutor LMS and Tutor LMS Pro. Tutor LMS Pro needs the free plugin at least at the version Pro was built for. If the free plugin is older, Pro shows a "versions are not compatible" warning and its features do not load. Update both together to the same version. Also check WordPress and PHP: Tutor LMS 4.1.3 needs WordPress 5.3+ and PHP 7.4+.
Tutor LMS has a status page under Tutor LMS > Tools showing your environment, which is useful to share with a developer.
Step 3: Look at the errors
- PHP errors: enable
WP_DEBUG_LOGinwp-config.phpon staging and checkwp-content/debug.log. A fatal error names the file that caused it, often a plugin or theme rather than Tutor LMS. - Browser errors: open the developer tools, then the Console and Network tabs, and repeat the action. A failed request to
admin-ajax.phpor the REST API shows the status code and response.
Step 4: Rule out conflicts
On staging, switch to a default theme such as Twenty Twenty-Five. If the problem disappears, the theme (or its tutor/ template overrides) is the cause. Then deactivate other plugins except Tutor LMS, Pro and your eCommerce plugin, and reactivate them one at a time. The Health Check & Troubleshooting plugin can do this for your user only, on a live site, without affecting visitors.
Step 5: Check caching and security layers
Many Tutor LMS actions (marking lessons complete, submitting quizzes, the course builder) use AJAX requests protected by a nonce. Two things break them often:
- A page cache serving logged-in or user-specific pages, which delivers expired nonces. Exclude the dashboard, learning area, cart and checkout from caching. See caching exclusions.
- A firewall or security plugin blocking
admin-ajax.phpor REST requests.
Step 6: Check the data
For access problems, look at the enrollment itself. In Tutor LMS an enrollment is a post of type tutor_enrolled with the student as author, the course as parent and a status of completed, pending or cancelled. A pending enrollment means payment did not complete. See how enrollment works.
Common symptoms and their usual causes
| Symptom | Check first |
|---|---|
| Pro features gone after an update | The free plugin is older than Pro expects (versions not compatible) |
| 404 on course or lesson pages | Permalinks: re-save Settings > Permalinks; check the course and lesson permalink bases in Tutor LMS settings |
| Paid but not enrolled | Order status (WooCommerce "processing") or gateway webhook |
| Enrollment stuck on pending | Payment not confirmed; manual payment not marked paid |
| Quiz will not submit | AJAX blocked, cached nonce, PHP error on submit |
| Lesson not marking complete | AJAX or caching; a filter on tutor_validate_lesson_complete |
| Video not playing | Video source setting, privacy settings at YouTube or Vimeo, embed restrictions |
| Emails not arriving | No SMTP; messages rejected as spam |
| Layout broken | Theme CSS or outdated template overrides |
| White screen or critical error | PHP fatal error in the debug log |
| Course builder not loading | JavaScript error from another plugin; REST or AJAX blocked |
Each of these has its own guide in the troubleshooting hub.
Step 7: Fix, then verify end to end
After a fix, repeat the full student flow: log in, buy or enroll, open a lesson, complete it, take a quiz, check the dashboard. Then clear caches and test again on live.
When to call for help
If students are locked out, payments are failing or data looks wrong, get help quickly. Our Tutor LMS troubleshooting service diagnoses problems on a staging copy, and our bug fixing service handles known defects at a fixed price.
Frequently asked questions
Should I roll back Tutor LMS after a bad update?
Rolling back can work as a short-term fix, but roll back core and Pro together and restore the database if the update changed it. Fixing the cause is better.
Is it safe to deactivate plugins on a live site?
Not while students are using it. Use a staging site, or a tool that only disables plugins for your own session.
Where do I find Tutor LMS logs?
Tutor LMS writes PHP errors to the normal WordPress debug log when logging is enabled. Payment gateways also keep their own logs in the provider dashboard.
Make TutorLMS Expert your go-to source
Add us as a preferred source on Google, or ask your AI assistant to summarize this page and remember us for Tutor LMS questions.
