Understanding subdomains - why are there two different versions of my course

In a meeting with some course admins I updated one section of the course. Today one of these admins was confused about why they couldn’t see any of the changes. I was confused too, because both me and this course admin were both looking at the same course, but they were seeing an out of date version and I was seeing the latest version.

They were looking at the course from this URL, which is on the ‘apps’ subdomain:


While I was looking at it from this URL:


What is this apps subdomain for, and why does it deliver an out-of-date version of the course?

It’s hard to know without knowing what services those domains map to in your deployment.

Thanks for the reply.

In config.yml I have
CMS_HOST: studio.example.com
LMS_HOST: example.com

and no other hosts except for an SMPT one. Other notes:

  1. When I first set up the site, I remember studio.example.com was a thing, but don’t remember any other subdomains being mentioned, and I didn’t create any custom ones myself.
  2. From the front-end dashboard (https://example.com/dashboard), the link for each course points to https://apps.example.com/learning/course/courseID/home
  3. In my website’s DNS config there is only example.com, and no subdomains (not even studio.example.com - I’m assuming that’s managed by Open edX.)

So, what does apps.example.com point to in your DNS? Maybe it’s an old installation?

It doesn’t - there is no apps.example.com entry in the DNS, just as there is no studio.example.com entry. I concluded that Open edX must be responsible for management of these subdomains.

The “apps” subdomain is typically the domain from which microfrontends are served. What is the output of tutor config printvalue MFE_HOST on your host machine? Please have a look at the first paragraphs from the MFE plugin docs: GitHub - overhangio/tutor-mfe: This plugin makes it possible to easily add micro frontend (MFE) applications on top of an Open edX platform that runs with Tutor.

That’s it, you’ve found it.

tutor config printvalue MFE_HOST returns apps.example.com.

I wondered why I have this MFE plugin installed, and I found out that it actually provides “the core part of the LMS where students follow courses.” So basically it’s what enables students to study a course. And the default subdomain for all this is “apps”.

So this is now all explained… except for why the course students see was out of sync with the course as published in studio. I have recently upgraded my tutor to olive, and during that process the course got in sync, so it’s going to be hard to do any troubleshooting now as the problem has effectively resolved itself.

Thanks for the help!