error/moodle/error question answers missing in db
This error occurs occasionally when you are restoring a quiz or question bank that has shared questions. The restore process will look to see if the shared questions already exist in the database where the backup is being restored. If they do, it will link to the existing questions in the database, instead of creating new copies of the shared questions. This error occurs when that process fails.
In order to restore the shared questions, all the different parts of the question like question_answer rows (e.g. the choices of a multiple choice question) have to be matched up. This error occurs when the restore process looks in the database for a particular row that matches something in the backup file, and fails to find it.
In the past, more specific causes of this have been tracked down to:
- Unusual combinations of white space in the question_answers. (When these are written out to to the XML in the backup file, then read back in, this can change the white space so that it no longer matches exactly. However, the code has been changed so that this should no longer be a problem.)
- Questions where text had been pasted from MS Word (MDL-34812).
There have been other reports about this problem occurring on sites that were previously upgraded from Moodle 1.x. If you have experienced this, please comment on tracker issue MDL-26442 with as much detail as possible to enable developers to reproduce the error in the dev environment and fix the problem.
Possible solutions
- Restore the questions manually into your course (or perhaps move them using export and import in the question bank) and recreate the quiz.
- Try to work out which particular question is causing the problem. Move the question you suspect into a course on its own in the question bank, then try duplicating that to see if it still triggers the error.
Other notes
The file that is throwing this error is /backup/moodle2/restore_qtype_plugin.class.php around line 159.