"Library Components Created Successfully but Not Displayed After Sandbox Upgrade from Sumac to Teak — Possible Meilisearch 400 Errors?"

Hello community,

After upgrading my Open edX sandbox from Sumac to Teak, I’m encountering an issue with content libraries in Studio. When I create any new component inside a library, the system shows a “Created successfully” message. However, after the page reloads, the newly created component is not visible in the library content list.

In the browser console, I see multiple POST requests failing with a 400 Bad Request error to the Meilisearch endpoint (/multi-search). There are also some 403 errors related to resource loading.

Has anyone experienced similar issues with content libraries or Meilisearch after upgrading? Could this be related to configuration changes or API permission issues with Meilisearch in the newer Teak sandbox version?

Any insights or recommended debugging steps would be greatly appreciated!

Thanks in advance.

Can you check what the detailed error is in the 400 response from Meilisearch? It would be in the “Network” tab of the browser tools that you’re showing in your first screenshot.

You can also check if Studio is generating the Meilisearch user API keys correctly: Go to [CMS root]/api/content_search/v2/studio/ in your browser after being logged in. On Tutor devstacks, this URL is http://studio.local.openedx.io:8001/api/content_search/v2/studio/ but on your sandbox it will have a different domain.

That should return a response like this:

{"url":"http://meilisearch.local.openedx.io:7700","index_name":"tutor_studio_content","api_key":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."}

If it’s not doing that, there is some configuration error with Meilisearch.

You can also try debugging Meilisearch directly, to check if data is actually stored in its index. To do this, go to https://meilisearch.sandbox-ng.abzt.de/ in your browser. To get the “Admin API Key” that you need to log in, run this tutor command: tutor config printvalue MEILISEARCH_API_KEY

If you see in that UI that the index doesn’t exist or is empty, fix it with this Tutor command: tutor [local|dev|k8s] exec cms ./manage.py cms reindex_studio --experimental . Just select the appropriate prefix (local, dev, or k8s) based on what type of deployment you’re using. (Too bad this is not just a tutor setting.) In fact, it’s probably a good idea to run that command anyways, to help with debugging. If there is some error going on, it should give a clear error message.

Hope this helps you get started!

I performed the steps you mentioned and the url is working and giving proper output. After that I ran the reindexing command but that gave error which I added below. Also inside the networks it shows attribute “publish_status” is not there which I tried to resolve while back not don’t know how it can been solved properly.
{"url":"https://meilisearch.sandbox-ng.abzt.de","index_name":"tutor_studio_content","api_key":"eyJ0eXA......}

I am experiencing the exact same error!

OK, so the error about publish_status should be resolved as soon as you can successfully run reindex_studio, because that command should re-create the index and it is definitely configured to use publish_status as a filterable column.

I think the main problem is that something is causing reindex_studio to fail. Specifically, the XBlock referenced at the top of your second screenshot. I have a fix here - would you be able to test it? fix: reindex_studio could crash if an XBlock child isn't loadable by bradenmacdonald · Pull Request #37177 · openedx/edx-platform · GitHub