Errro after login/registration

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:

https://learn.example.uni.edu.tr

https://apps.example.uni.edu.tr

https://studio.example.uni.edu.tr

CSRF_COOKIE_DOMAIN: .scholarsonline.ciu.edu.tr
CSRF_TRUSTED_ORIGINS:

https://learn.example.uni.edu.tr

https://apps.example.uni.edu.tr

https://studio.example.uni.edu.tr

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:

https://overhang.io/tutor/main

https://overhang.io/tutor/contrib

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.

As this message shows, typically your apps would be in a subdomain of your base URL (LMS_HOST)
So if your LMS host is learn.example.uni.edu.tr and your CMS host is studio.example.uni.edu.tr then your APPS should be apps.learn.example.uni.edu.tr
Not sure if that’s the entirety of your issue, but it may be a good place to start. This topic here also sounds like it may be relevant to you if you are trying to set your mfe url to a not-subdomain: Tutor mfe plugin fresh startup error

be careful about emails/passwords in your posts, you might want to change your gmail password before someone abuses it :slight_smile:

1 Like