Hello,
I have installed Tutor version 19.0.3 on Ubuntu. When the user is led to https://apps.example.uni.edu.tr/learner-dashboard/ after registration or login, faces ‘An unexpected error occurred. Please click the button below to refresh the page.‘ message on the page.
It seems the problem is related to MFE.
~/.local/share/tutor/config.yml incudes:
ADMINS:
Admin
webmaster
APPS_DOMAIN: example.uni.edu.tr
CMS_HOST: studio.example.uni.edu.tr
CMS_OAUTH2_SECRET: ‘password‘
CONTACT_EMAIL: webmaster97@gmail.com
CORS_ALLOW_ALL_ORIGINS: false
CORS_ORIGIN_WHITELIST:
CSRF_COOKIE_DOMAIN: .scholarsonline.ciu.edu.tr
CSRF_TRUSTED_ORIGINS:
DEFAULT_FROM_EMAIL: webmaster97@gmail.com
EMAIL_BACKEND: django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST: smtp.gmail.com
EMAIL_HOST_PASSWORD: ‘password‘
EMAIL_HOST_USER: webmaster97@gmail.com
EMAIL_PORT: 587
EMAIL_USE_SSL: false
EMAIL_USE_TLS: true
ENABLE_HTTPS: true
ID: QYh2sv7FGx7NtHhGZbsP8me3
LANGUAGE_CODE: en
LMS_HOST: learn.example.uni..edu.tr
MEILISEARCH_API_KEY: ‘the key‘
MEILISEARCH_API_KEY_UID: ‘the uid‘
MEILISEARCH_HOST: meilisearch.example.uni.edu.tr
MEILISEARCH_MASTER_KEY: ‘the key‘
MEILISEARCH_ROOT_URL: https://meilisearch.example.uni.edu.tr
MFE_ACCOUNT_BASE_URL: https://apps.example.uni.edu.tr/account
MFE_APPS_URL: https://apps.example.uni.edu.tr
MFE_CONTACT_EMAIL: webmaster97@gmail.com
MFE_ENABLE_ACCESSIBILITY_PAGE: true
MFE_HOST: apps.example.uni.edu.tr
MFE_LOGO_URL: https://apps.example.uni.edu.tr/logo.png
MFE_ORDER_HISTORY_URL: https://apps.example.uni.edu.tr/orders
MFE_PRIVACY_POLICY_URL: Privacy Policy | scholarsonline
MFE_SUPPORT_EMAIL: webmaster97@gmail.com
MFE_TERMS_OF_SERVICE_URL: https://learn.example.uni.edu.tr/terms
MYSQL_ROOT_PASSWORD: ‘password‘
OPENEDX_MYSQL_PASSWORD: ‘password‘
OPENEDX_SECRET_KEY: ‘password‘
PLATFORM_NAME: example
PLUGINS:email_fix
mfe
PLUGIN_INDEXES:
PREVIEW_LMS_HOST: preview.learn.example.uni.edu.tr
REGISTRATION_EMAIL_VERIFICATION: true
SERVER_EMAIL: webmaster97@gmail.com
SESSION_COOKIE_DOMAIN: .example.uni.edu.tr
a piece of the logs:
lms-1 | 2025-08-12 11:29:56,111 INFO 22 [tracking] [user None] [ip 172.16.42.14] logger.py:41 - {“name”: “/api/user/v2/account/login_session/”, “context”: {“user_id”: null, “path”: “/api/user/v2/account/login_session/”, “course_id”: “”, “org_id”: “”, “enterprise_uuid”: “”}, “username”: “”, “session”: “13d993e81ee6963d98dcef9484fe44df”, “ip”: “172.16.42.14”, “agent”: “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36”, “host”: “learn.example.uni.edu.tr”, “referer”: “https://apps.example.uni.edu.tr/”, “accept_language”: “en-US,en;q=0.6”, “event”: “{\“GET\”: {}, \“POST\”: {\“email_or_username\”: [\“flamenco\”], \“next\”: [\”/\“], \“password\”: \”********\“}}”, “time”: “2025-08-12T11:29:56.111172+00:00”, “event_type”: “/api/user/v2/account/login_session/”, “event_source”: “server”, “page”: null}
lms-1 | 2025-08-12 11:29:56,617 INFO 22 [tracking] [user 62] [ip 172.16.42.14] logger.py:41 - {“name”: “edx.user.login”, “context”: {“user_id”: null, “path”: “/api/user/v2/account/login_session/”, “course_id”: “”, “org_id”: “”, “enterprise_uuid”: “”}, “username”: “”, “session”: “13d993e81ee6963d98dcef9484fe44df”, “ip”: “172.16.42.14”, “agent”: “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36”, “host”: “learn.example.uni.edu.tr”, “referer”: “https://apps.example.uni.edu.tr/”, “accept_language”: “en-US,en;q=0.6”, “event”: {“user_id”: 62, “event_type”: “login”}, “time”: “2025-08-12T11:29:56.617094+00:00”, “event_type”: “edx.user.login”, “event_source”: “server”, “page”: null}
lms-1 | 2025-08-12 11:29:56,617 INFO 22 [audit] [user 62] [ip 172.16.42.14] user.py:1248 - Login success - user.id: 62
lms-1 | 2025-08-12 11:29:56,626 INFO 22 [openedx_events.tooling] [user 62] [ip 172.16.42.14] tooling.py:179 - Responses of the Open edX Event <org.openedx.learning.auth.session.login.completed.v1>:
lms-1 |
lms-1 | [pid: 22|app: 0|req: 6/31] 172.18.0.4 () {68 vars in 1516 bytes} [Tue Aug 12 11:29:56 2025] POST /api/user/v2/account/login_session/ => generated 83 bytes in 731 msecs (HTTP/1.1 200) 16 headers in 3385 bytes (1 switches on core 0)
lms-1 | 2025-08-12 11:29:56,876 INFO 23 [tracking] [user 62] [ip 172.16.42.14] logger.py:41 - {“name”: “/”, “context”: {“user_id”: 62, “path”: “/”, “course_id”: “”, “org_id”: “”, “enterprise_uuid”: “”}, “username”: “flamenco”, “session”: “5dd854c98d0f1aa2579f4282b5596a17”, “ip”: “172.16.42.14”, “agent”: “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36”, “host”: “learn.example.uni.edu.tr”, “referer”: “https://apps.example.uni.edu.tr/”, “accept_language”: “en-US,en;q=0.6”, “event”: “{\“GET\”: {}, \“POST\”: {}}”, “time”: “2025-08-12T11:29:56.875936+00:00”, “event_type”: “/”, “event_source”: “server”, “page”: null}
lms-1 | [pid: 23|app: 0|req: 8/32] 172.18.0.4 () {64 vars in 3292 bytes} [Tue Aug 12 11:29:56 2025] GET / => generated 0 bytes in 28 msecs (HTTP/1.1 302) 9 headers in 533 bytes (1 switches on core 0)
lms-1 | 2025-08-12 11:29:56,907 INFO 22 [tracking] [user 62] [ip 172.16.42.14] logger.py:41 - {“name”: “/dashboard”, “context”: {“user_id”: 62, “path”: “/dashboard”, “course_id”: “”, “org_id”: “”, “enterprise_uuid”: “”}, “username”: “flamenco”, “session”: “5dd854c98d0f1aa2579f4282b5596a17”, “ip”: “172.16.42.14”, “agent”: “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36”, “host”: “learn.example.uni.edu.tr”, “referer”: “https://apps.example.uni.edu.tr/”, “accept_language”: “en-US,en;q=0.6”, “event”: “{\“GET\”: {}, \“POST\”: {}}”, “time”: “2025-08-12T11:29:56.906802+00:00”, “event_type”: “/dashboard”, “event_source”: “server”, “page”: null}
lms-1 | [pid: 22|app: 0|req: 7/33] 172.18.0.4 () {64 vars in 3310 bytes} [Tue Aug 12 11:29:56 2025] GET /dashboard => generated 0 bytes in 29 msecs (HTTP/1.1 302) 9 headers in 580 bytes (1 switches on core 0)
lms-1 | 2025-08-12 11:29:57,476 INFO 23 [tracking] [user None] [ip 172.18.0.4] logger.py:41 - {“name”: “/api/mfe_config/v1”, “context”: {“user_id”: null, “path”: “/api/mfe_config/v1”, “course_id”: “”, “org_id”: “”, “enterprise_uuid”: “”}, “username”: “”, “session”: “”, “ip”: “172.18.0.4”, “agent”: “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36”, “host”: “learn.example.uni.edu.tr”, “referer”: “https://apps.example.uni.edu.tr/learner-dashboard/”, “accept_language”: “en-US,en;q=0.6”, “event”: “{\“GET\”: {\“mfe\”: [\“learner-dashboard\”]}, \“POST\”: {}}”, “time”: “2025-08-12T11:29:57.476006+00:00”, “event_type”: “/api/mfe_config/v1”, “event_source”: “server”, “page”: null}
lms-1 | 2025-08-12 11:29:57,479 INFO 23 [edx_rest_framework_extensions.auth.jwt.middleware] [user None] [ip 172.18.0.4] middleware.py:79 - (‘The view MFEConfigView allows Jwt Authentication. The required permission class, NotJwtRestrictedApplication,’, ’ was automatically added.')
lms-1 | [pid: 23|app: 0|req: 9/34] 172.18.0.11 () {64 vars in 1132 bytes} [Tue Aug 12 11:29:57 2025] GET /api/mfe_config/v1?mfe=learner-dashboard => generated 1876 bytes in 15 msecs (HTTP/1.1 200) 9 headers in 280 bytes (1 switches on core 0)
lms-1 | [pid: 22|app: 0|req: 8/35] 172.18.0.4 () {64 vars in 3261 bytes} [Tue Aug 12 11:29:57 2025] POST /login_refresh => generated 213 bytes in 87 msecs (HTTP/1.1 200) 11 headers in 1777 bytes (1 switches on core 0)
I run the project via:
(tutor-env) mohammad@scholars: totur local launch
but the global version is in ~/.local/share/tutor/
Also I see “Warning: MFE_HOST=“apps.example.uni.edu.tr” is not a subdomain of LMS_HOST=“learn.example.uni.edu.tr”. This configuration is not typically recommended and may lead to unexpected behavior problem“ message when run the project.
Thank you in advance for your time.