Issue with MFE interface for CCX course

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?

I would like to emphasize the main issue here:

  • 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: No CourseOutlineData for ccx-v1:ccx+ccx+ccx+ccx@3

I think maybe @Michael_Terry could help here (as he worked on enabling the Learning Sequences by default)

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.

1 Like

thanks for your reply, @ghassan

you’re actually confirming our guesses! :+1:

1 Like