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:
A student interacts with a module (viewing/submitting).
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