Error 500 occurs when going to the About page in the CCX course (http://localhost:2000/course/ccx-v1:RG+test-course-2+2023+ccx@19/home).
I found out that the error occurs because we get an exception in the _get_course_context_for_outline function (error in this request LearningContext.objects.select_related('course_context').get(context_key=course_key).course_context, in this model there is no object with this course_key).
When creating a new CCX in the LMS, the SignalHandler.course_published.send signal is created in the create_ccx view. But this signal does not appear in the listen_for_course_publish (receives publishing signal and performs publishing-related workflows) handler in the Studio. However, when creating/editing a course in the Studio, this handler works correctly.
Possible quick workaround:
Use management command in Studio: backfill_course_outlines
Use Studio admin /admin/contentstore/courseoutlineregenerate/
But these solutions do not solve the main issue - why the signal is not received by the handler in the Studio. Who faced this issue? Can anyone explain the reasons behind this case?
learning sequences are created/updated when the Studio’s listen_for_course_publish function receives the course_published signal
mentioned function doesn’t receive the signal in the case of creating the CCX course, so the learning sequences record isn’t created/updated for it
this will result in the 500 error on the CCX course home page: openedx.core.djangoapps.content.learning_sequences.data.CourseOutlineData.DoesNotExist: No CourseOutlineData for ccx-v1:ccx+ccx+ccx+ccx@3
The CCX is buggy I have had encountered problem since maple, hence this Weird behavior when using CCX with Maple
But that didn’t really resolve it, or it only worked I think for newly created courses or something. I have a vague memeory.
But yeah CCX is buggy and to my knowledge it’s not considered part of core-product, thus it might not get enough support.