I got the following error messages about the language preference of the course in /edx/var/log/lms/edx.log:
What I find strange is that the anonymous user created by the LTI process needs a language preference? I don’t remember ever setting a language preference for LTI users in the past.
I also noticed that [user 17] in the error logs has not been created in the auth_user table in mysql.
If I try to access the course again, it goes to [user 18] as expected, but I get the same error messages and stil no user created in auth_user.
Anybody has an explanation for this? Or is there a big LTI issue with juniper.alpha1 ?
As we have a lot of our courses being used as LTI ressources by other LMS, this could be a major issue for us.
By the way, the only things modified from a default single-server juniper.alpha1 installation are the entries in /edx/etc/lms.yml.
Under FEATURES: we added:
ENABLE_LTI_PROVIDER: true
Under JWT_AUTH: we modified:
JWT_ISSUER
ISSUER
JWT_PRIVATE_SIGNING_JWK
JWT_PUBLIC_SIGNING_JWK_SET
JWT_SIGNING_ALGORITHM
It is as close to a vanilla installation as can be…
The migration were also run in order to create the 4 LTI tables in the database edxapp in mysql.
/edx/app/edxapp/reload_lms_config.sh was also ran in order to reload the LMS configuration.
Just for the sake of it, I modified LANGUAGE_CODE in /edx/etc/lms.yml from en to fr.
My site and my error logs are in French as expected. Nonetheless, it still complains about ‘en’ not being a valid preference for pref-lang for the user id 17 that it is trying to create as a result of accessing the ressource via LTI.
openedx.core.djangoapps.user_api.errors.PreferenceValidationError: {‘pref-lang’: {‘user_message’: “La valeur ‘en’ n’est pas valide pour la préférence utilisateur’pref-lang’.”, ‘developer_message’: 'Value ‘en’ not valid for preference ‘pref-lang’: {‘user’: ['Clé primaire “17” non valide - l\‘objet n\‘existe pas.’]}’}}
I am still unsure why it tries to validate the language preference of an anonymized user created for LTI purposes. Any idea?