[Self-Hosted] Module Progressions recursively corrupting (Completed with Requirements not met) after Upgrade

35 views
Skip to first unread message

Anand Srinivasan

unread,
Jan 5, 2026, 12:04:00 PM (7 days ago) Jan 5
to Canvas LMS Users

Hi everyone,

We manage a self-hosted Canvas instance and recently performed a major upgrade to [release/2025-03-12.361]. We are facing a persistent issue where Module Progressions are incorrectly marking students as Completed despite having met zero requirements.

The Symptoms:

  1. A student interacts with a module (viewing/submitting).

  2. The context_module_progressions record updates to:

    • workflow_state: 'completed'

    • requirements_met: [] (Empty Array)

    • This happens even though the Module definitely has active completion_requirements in the DB.

What we have verified:

  • Integrity: The context_modules table has correct completion_requirements. All content tags exist and are published.

  • The Fix Fails: We ran a script to destroy the corrupt progression records. This fixes the issue temporarily (status resets to Locked/Started). However, as soon as students interact with the course again, a percentage of records revert to the corrupt state.

  • Strict Logic: We verified via Rails Console that progression.evaluate_requirements should be returning 'started' or 'unlocked', yet the record is being saved as 'completed'.

Environment:

  • Canvas Version: [release/2025-03-12.361], same as [origin/stable/2025-03-12]

  • Database: PostgreSQL 14

  • OS: Ubuntu 24

It behaves as if the calculator sees the requirements as null during the write operation.

Any help on this is appreciated!


Thanks,
Anand

Reply all
Reply to author
Forward
0 new messages