INFO 27 [openedx.core.djangoapps.content.course_overviews.models] Attempting to load CourseOverview for course course-v1:UniversityX+PHYS835+2028 from modulestore.
INFO 27 [openedx.core.djangoapps.content.course_overviews.models] Could not create CourseOverview for non-existent course: course-v1:UniversityX+PHYS835+2028
Traceback (most recent call last):
...
File "/openedx/edx-platform/cms/djangoapps/contentstore/views/course.py", line 322, in course_handler
return _create_or_rerun_course(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
File "/openedx/edx-platform/cms/djangoapps/contentstore/views/course.py", line 1198, in _create_or_rerun_course
destination_course_key = rerun_course(request.user, source_course_key, org, course, run, fields)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/edx-platform/cms/djangoapps/contentstore/views/course.py", line 1328, in rerun_course
add_instructor(destination_course_key, user, user)
File "/openedx/edx-platform/cms/djangoapps/contentstore/utils.py", line 115, in add_instructor
CourseInstructorRole(course_key).add_users(new_instructor)
File "/openedx/edx-platform/common/djangoapps/student/roles.py", line 524, in add_users
self._authz_add_users(users)
File "/openedx/edx-platform/common/djangoapps/student/roles.py", line 493, in _authz_add_users
authz_add_role(
File "/openedx/edx-platform/common/djangoapps/student/roles.py", line 69, in authz_add_role
authz_api.assign_role_to_user_in_scope(
File "/openedx/venv/lib/python3.12/site-packages/openedx_authz/api/users.py", line 84, in assign_role_to_user_in_scope
return assign_role_to_subject_in_scope(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.12/site-packages/openedx_authz/api/roles.py", line 232, in assign_role_to_subject_in_scope
extended_rule = ExtendedCasbinRule.create_based_on_policy(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.12/site-packages/openedx_authz/models/core.py", line 229, in create_based_on_policy
"scope": Scope.objects.get_or_create_for_external_key(scope),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.12/site-packages/openedx_authz/models/core.py", line 77, in get_or_create_for_external_key
return scope_class.get_or_create_for_external_key(scope_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.12/site-packages/openedx_authz/models/scopes.py", line 140, in get_or_create_for_external_key
course_overview = CourseOverview.get_from_id(course_key)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/edx-platform/openedx/core/lib/cache_utils.py", line 73, in decorator
result = wrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/edx-platform/openedx/core/djangoapps/content/course_overviews/models.py", line 431, in get_from_id
return course_overview or cls.load_from_module_store(course_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/edx-platform/openedx/core/djangoapps/content/course_overviews/models.py", line 373, in load_from_module_store
raise cls.DoesNotExist()
When trying to re-run any course on a
masterdevstack, I'm getting this traceback. It seems that the authz code is trying to find the CourseOverview to create the role entry for the new course before the re-run has actually been created.If I disable the
authz.enable_course_authoringwaffle flag, then it works fine.