I've set up a course with completion tracking, conditional access and outcomes. There are a number of quizzes, which have to be passed in order for subsequent content to be accessed.
However, quizzes that contain the Open University quiz types are failing with the following error:
An error occurred while processing your responses (Found more than one record in fetch() !).
Debug info:
- Error code: errorprocessingresponses
- line 463 of /lib/setuplib.php: moodle_exception thrown
- line 182 of /mod/quiz/processattempt.php: call to print_error()
The server logs don't add much apart from stating the database transaction aborted automatically in .../mod/quiz/processattempt.php
After some digging, it appears that the update function in the /lib/grade/grade_object.php file has a call to $this->notify_changed(false) (line 270). This is a protected function that does not return anything, but it is presumably important somewhere else, since if I comment this out, I don't get the error message above. However, although conditional access works, the quiz is not marked as completed, so I don't really see this as a good solution.
Interestingly, I cannot replicate this with Moodle 2.7.5+
Other info:
- PHP 5.6.2
- MySQL 5.5.38