A lesson does not appear
The lesson is missing from the course outline, or its URL returns not found.
The first check
Open the lesson and look at its Attached course and Attached section.
Those two fields cause the great majority of missing-lesson reports:
| Fields | Result |
|---|---|
| No course | The lesson returns not found on the front end |
| Course set, no section | The lesson is absent from the outline but still counted in progress |
| Wrong course | The lesson appears in a different course's outline |
| Wrong section | The lesson appears in the wrong part of the outline |
Missing from the outline
Work through these:
- Is the lesson published? Drafts do not appear.
- Is the Attached course right?
- Is the Attached section set, and does it still exist on the course? A lesson naming a section that was renamed or deleted falls out of the outline while remaining attached to the course.
- Is the order right? Lessons are ordered by the page-attributes order field. Lessons with no order set cluster together in an arbitrary order.
Audit it from the lesson list: open Lessons, filter by the course, and read the Section column. Every dash is a lesson that will never show in the outline — and that will stop students reaching 100%.
The lesson URL returns not found
- The lesson has no attached course. This is deliberate: with no course there are no access rules to apply, so the page refuses rather than showing content. Set the course.
- The lesson is a draft.
- The lesson URL base or the child structure was changed and the rewrite rules were not rebuilt. Open Settings → Permalinks and use Save Changes.
- The lesson was deleted. Check the trash.
The lesson appears but is disabled
That is access, not visibility. A lesson row that is present but not clickable means the student cannot open it.
Check the course's access settings, then the lesson's own Lesson permission rule — a lesson-level rule replaces the course's rule for that lesson, so a lesson can be closed inside an open course.
See A student cannot access a free course.
The lesson shows the wrong course in its banner
The lesson subheader prints the title of the lesson's attached course. If it names the wrong course, the Attached course field is wrong — fix it there.
After moving a lesson between courses
Two things change:
- The lesson leaves the old course's outline and total, and joins the new one's.
- Students' completion of it stays recorded against the old course, so it starts uncompleted in the new one.
Both percentages move. That is expected, and worth telling students if it affects a live course.
Nothing here fits
Compare the broken lesson with a working one in the same course, field by field. When one lesson fails and its neighbours work, the difference is in the lesson.