If you are running the latest version of ILIAS in a Docker container and suddenly find yourself unable to manage course participants—resulting in a blank page or an HTTP 500 error—you are not alone.
Because ILIAS currently does not allow public issue creation on their GitHub repository, many administrators are left stuck without a workaround. Here is the root cause and a quick 1-minute hotfix to get your LMS running again.
The Problem
When navigating to the Members tab or Membership settings of a course, the page fails to load. Checking your Docker logs (docker logs ilias_app) reveals the following PHP Fatal TypeError:
facultyai_root.ERROR: Cannot assign ILIAS\Refinery\Factory to property ilCourseParticipantsTableGUI::$refinery of type ILIAS\Refinery in /var/www/html/components/ILIAS/Course/classes/class.ilCourseParticipantsTableGUI.php:71
The Root Cause
The ILIAS codebase has a strict type mismatch. The property $refinery is declared as type ILIAS\Refinery, but the global dependency injection container passes an instance of ILIAS\Refinery\Factory. Because of strict typing in modern PHP, this mismatch instantly crashes the course membership GUI.
The Fix (1-Minute Hotfix)
You can fix this by directly editing the file inside your Docker container.
1. Access your container’s shell:
docker exec -it ilias_app bash
(Replace ilias_app with the name of your ILIAS container).
2. Open the problematic file in a text editor:
nano /var/www/html/components/ILIAS/Course/classes/class.ilCourseParticipantsTableGUI.php
3. Update the property declaration (around line 33).
Find the line that declares the $refinery property. It currently looks something like this (or lacks the proper type hint entirely):
protected \$refinery;
Change it to exactly this:
protected ILIAS\Refinery\Factory $refinery;
Save and exit the editor (in nano: Ctrl+O, Enter, Ctrl+X).
4. Clear the PHP OPcache (Crucial for Docker)
If you don’t clear the OPcache, PHP will continue running the old, broken version of the file from memory. Restart the PHP handler inside your container:
service php8.1-fpm restart
(Note: Adjust the PHP version in the command if your container uses 8.0 or 8.2. If you are using Apache with mod_php, use service apache2 restart instead).
Important Note on Docker Containers
This hotfix modifies the container’s writable layer.
- Safe: If you simply
docker stopanddocker startyour container, the fix will persist. - Not Safe: If you recreate the container (e.g.,
docker-compose downanddocker-compose up), the fix will be wiped out, and you will need to apply it again until the ILIAS developers release an official patch.