Studio: Add New Component Button Missing

I am new to Openedx Platform. I have installed Koa release in local instance.LMS, Studio, Discovery, Ecommerce module are configured and working. However, When I tried to create the courses, I cannot find the buttons in Add new component. Please refer the attached screenshot.

That’s very strange @maheshwor – I’ve never seen this issue before.

Are there any errors in your Studio logs? They’ll be under /edx/var/log/**/*.log, or perhaps in the JavaScript console of your browser?

The is the error msg in my browser

       TypeError: Cannot read properties of undefined (reading 'category')
    at child.eval (eval at _.template (cms-base-vendor.fc516f7ace47.js:12212), <anonymous>:14:22)
    at child.template (cms-base-vendor.fc516f7ace47.js:12219)
    at child.initialize (container.7d50814822ef36058f75.14682eac4a46.js:1)
    at child.Backbone.View (cms-base-vendor.fc516f7ace47.js:14976)
    at child.constructor (commons.08d0223e6e2c7ac3a3c1.b63eedcf0326.js:1)
    at new child (cms-base-vendor.fc516f7ace47.js:15736)
    at container.7d50814822ef36058f75.14682eac4a46.js:1
    at Function._.each._.forEach (cms-base-vendor.fc516f7ace47.js:10911)
    at child.each (cms-base-vendor.fc516f7ace47.js:15142)
    at child.render (container.7d50814822ef36058f75.14682eac4a46.js:1) "TypeError: Cannot read properties of undefined (reading 'category')\n    at child.eval (eval at _.template (http://studio.elabanepal.com/static/studio/js/cms-base-vendor.fc516f7ace47.js:12212:20), <anonymous>:14:22)\n    at child.template (http://studio.elabanepal.com/static/studio/js/cms-base-vendor.fc516f7ace47.js:12219:21)\n    at child.initialize (http://studio.elabanepal.com/static/studio/bundles/js/factories/container.7d50814822ef36058f75.14682eac4a46.js:1:4742)\n    at child.Backbone.View (http://studio.elabanepal.com/static/studio/js/cms-base-vendor.fc516f7ace47.js:14976:21)\n    at child.constructor (http://studio.elabanepal.com/static/studio/bundles/commons.08d0223e6e2c7ac3a3c1.b63eedcf0326.js:1:25005)\n    at new child (http://studio.elabanepal.com/static/studio/js/cms-base-vendor.fc516f7ace47.js:15736:41)\n    at http://studio.elabanepal.com/static/studio/bundles/js/factories/container.7d50814822ef36058f75.14682eac4a46.js:1:3302\n    at Function._.each._.forEach (http://studio.elabanepal.com/static/studio/js/cms-base-vendor.fc516f7ace47.js:10911:9)\n    at child.each (http://studio.elabanepal.com/static/studio/js/cms-base-vendor.fc516f7ace47.js:15142:28)\n    at child.render (http://studio.elabanepal.com/static/studio/bundles/js/factories/container.7d50814822ef36058f75.14682eac4a46.js:1:3275)"

@maheshwor I’m kind of at a loss here… I have never seen this before.

The only thing I can think of from looking at the code, is maybe your “Django XBlock support levels” are configured to be too restrictive? It’s definitely not something added by default for most deployments, but it’s worth checking:

  1. Login to Studio using a staff + superuser account.
  2. Append this to the end of your URL: /admin/xblock_django/
  3. Check each of those links to see if any exclusions for XBlocks have been enabled on your site.

Thank you Jill for your reply. I disabled the X block studio configuration flags (admin › Xblock_Django › X block studio configuration flags) and the component are visible now.

But, I am still confused about when to enable or disable the xblock studio configuration flags.

@maheshwor From your screenshot, it looks like those older entries in x block studio configuration flag were causing your problems.

  • What were the “Support level” values for those old entries?

    I believe by disabling the “Enable Studio Authoring” flag, the Support level setting is ignored, so that explains why it’s fixed now. But I think that if you changed “Support level” to “Unsupported”, it would do the same thing.

  • Do you have any other configuration flags set under XBlock_Django?

    The help text for these fields is really confusing – lots of double negatives, and intricate interactions between these settings, so it seems really easy to break.