Rendering 'TypeError' with theme components after update

I just updated to this : Commits · discourse/discourse · GitHub 2f398db9b66f19220b5a7f56721a68f41dcdeeec

Two different theme components now completely break my site. They are the “Modern Category + Group Boxes” from Air Theme and Avatar Size and Shape

They render the site unusable (looping?). Happens on both Firefox and Chrome (desktop)

I have tried them with no plugins and in isolation on different themes (ie safe mode with no plugins and on an isolated theme), so I don’t think it’s specific to my instance.

Console reports lines like this:

Uncaught TypeError: Cannot read properties of null (reading ‘syscall’)

Uncaught (in promise) TypeError: Invalid value used as weak map key

message-bus.js:118 MESSAGE BUS FAIL: callback /latest caused exception TypeError: Cannot read properties of null (reading ‘syscall’)

As a temporary solution, I have forced my users onto a generic theme until it’s figured out. Please let me know if you can replicate this error.

4 Likes

Sorry I can’t repro so far

2 Likes

I’m experiencing the same issue on my site. For example, when I log out, the page turns completely white with the same error. Some users also reported that they can’t log in because the page is just blank. It seems to happen randomly.

The main problem is that there’s no clear error message to indicate what’s causing it. I tried to track it down by checking my theme components. I’ve already updated most of them to gjs, but here’s the interesting part: when I deactivate and then reactivate a specific component, the site starts working again without errors. I still don’t know what’s causing this issue though… It seems that the problem only occurs on pages where a (custom) theme component is present. So at least this gives me a clue that the issue must be coming from one of the components.

1 Like

This might help track it down:

Check the helpers!

can you share a page/site where it’s happening @Don @piffy ?

1 Like

Here is a simple theme I set up that only has the avatar component: Elite Fourum - E4 - efour

https://www.elitefourum.com/latest?safe_mode=no_plugins&preview_theme_id=39

I can repo the issue at this link on firefox and chrome (desktop)


Modern Category + Group Boxes : Elite Fourum - E4 - efour

https://www.elitefourum.com/?safe_mode=no_plugins&preview_theme_id=58

this one seems harder to repo. It causes issues when I’m logged into my admin account (chrome and firefox) but not when I try on a dummy account. The bugs seem similar though between both theme component so maybe fixing one will solve the other.

Hope it helps!

1 Like

the closest thing I could get to an iterpretable error message is

client-error-handler.js:125 [THEME 39 ‘Test’] Error: Could not find module admin/components/color-input imported from (require)

the customize-edit-category-general.js is coming from the Air Theme:

in core:

This looks like the same issue: Forum navbar is repeating

1 Like

This will fix the color-input error from the air theme. But this issue is not new, so I think it’s unlikely to be the cause of these rendering errors

2 Likes

@piffy please can you try updating to the latest tests-passed, just in case that color-input fix helps at all.

Assuming things are still broken after a rebuild, please can you try this:

./launcher enter app
rails c
Discourse.clear_all_theme_cache!

Same goes for you @don, if you have the time.

If that solves the problem, then it suggests we have an issue with the theme cache invalidation :thinking:

2 Likes

Thanks David, it seems this do the trick for me.

1 Like

Also confirming the update didn’t help but the theme cache reset worked.

2 Likes

Ok great, thanks for confirming! We’ll try to solve this problem in the theme caching system, so that manual action isn’t required.

But in the meantime, for anyone else who runs into these issues:

Uncaught TypeError: Cannot read properties of null (reading ‘syscall’)
Uncaught (in promise) TypeError: Invalid value used as weak map key

Please take these steps on the console:

./launcher enter app
rails c
Discourse.clear_all_theme_cache!
2 Likes