After upgrading tutor with
pip install "tutor[full]"
And then launched the upgrade from Redwood with
tutor local upgrade --from=redwood
I then migrated courses’ forum from MongoDB to MySQL (as advised) with these commands
tutor local run lms ./manage.py lms forum_migrate_course_from_mongodb_to_mysql --no-toggle all
tutor local run lms ./manage.py lms waffle_flag --create --everyone forum_v2.enable_mysql_backend
But then, when launching the platform with
tutor local launch
Although several steps seem to have completed successfully, the launch procedure gets stuck in a loop because of a connection timeout from the refresh_course_metadata script in course_discovery. It tries to call a URL that is most likely not reachable from the Docker container that it is running from. Therefore, it errors out with a requests.exceptions.ConnectTimeout exception, as shown in the logs below:
2025-09-23 07:08:17,928 INFO 56 [course_discovery.apps.course_metadata.management.commands.refresh_course_metadata] /openedx/discovery/course_discovery/apps/course_metadata/management/commands/refresh_course_metadata.py:134 - Command is not using threads to write data.
2025-09-23 07:08:17,939 INFO 56 [course_discovery.apps.course_metadata.management.commands.refresh_course_metadata] /openedx/discovery/course_discovery/apps/course_metadata/management/commands/refresh_course_metadata.py:178 - Executing Loader CoursesApiDataLoader, url: https://<ask_me_for_the_hostname>/api/courses/v1/
2025-09-23 07:08:17,958 INFO 56 [course_discovery.apps.course_metadata.data_loaders.api] /openedx/discovery/course_discovery/apps/course_metadata/data_loaders/api.py:57 - Refreshing Courses and CourseRuns from https://<ask_me_for_the_hostname>/api/courses/v1/...
2025-09-23 07:08:17,958 INFO 56 [course_discovery.apps.course_metadata.data_loaders.api] /openedx/discovery/course_discovery/apps/course_metadata/data_loaders/api.py:103 - Requesting course run page 1...
2025-09-23 07:10:32,036 INFO 56 [backoff] /openedx/venv/lib/python3.12/site-packages/backoff/_common.py:105 - Backing off _make_request(...) for 38.7s (requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='<ask_me_for_the_hostname>', port=443): Max retries exceeded with url: /api/courses/v1/courses/?page=1&page_size=50&username=discovery&active_only=True (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7bff158a4dd0>, 'Connection to <ask_me_for_the_hostname> timed out. (connect timeout=None)')))
2025-09-23 07:11:10,772 INFO 56 [course_discovery.apps.course_metadata.data_loaders.api] /openedx/discovery/course_discovery/apps/course_metadata/data_loaders/api.py:103 - Requesting course run page 1...
2025-09-23 07:13:24,062 INFO 56 [backoff] /openedx/venv/lib/python3.12/site-packages/backoff/_common.py:105 - Backing off _make_request(...) for 40.5s (requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='<ask_me_for_the_hostname>', port=443): Max retries exceeded with url: /api/courses/v1/courses/?page=1&page_size=50&username=discovery&active_only=True (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7bff158a4410>, 'Connection to <ask_me_for_the_hostname> timed out. (connect timeout=None)')))
2025-09-23 07:14:04,518 INFO 56 [course_discovery.apps.course_metadata.data_loaders.api] /openedx/discovery/course_discovery/apps/course_metadata/data_loaders/api.py:103 - Requesting course run page 1...
Indeed, there is no trace of the connection reaching its destination in the logs, which confirms that the URL is not reachable from there.
Has anyone faced a similar issue? Any idea how I can make this work?
Thanks in advance!