You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reported within eleven hours of beta.7 by Vinni_Pukh (CachyOS), b0b4444 and Villoch (Windows x64) on the mod database listing, and by a friend of NekoJess on the Discord: opening Manage Mods on an installation shows a blank screen.
Root cause, reproduced against the live mod database rather than a fixture. installedModTags in src/domain/mods/installedFilters.ts (new in #348) collects every _mod.tags entry across the installed mods and folds case with value.toLowerCase(). The ModDB API returns tags: ["Cosmetics", "Crafting", "Storage", null] for Vanilla Variants, a very popular mod. null.toLowerCase() throws on the first render of the page, and since the renderer has no error boundary, React unmounts the whole tree: blank screen, nothing in the log.
Anyone with Vanilla Variants, or any other mod whose listing carries a non-string tag, hits it. The fixtures in tests/ never did, because they were written by hand from the API's documented shape rather than from what it actually returns.
Three things follow from this, in order of urgency:
Hotfix: the filter derivations must treat only string entries as tags and authors, at the one place every reader goes through, and a regression test must use the real shape (a null inside tags), not a sanitised one. Ship as beta.8.
An error boundary around page content, so a render exception shows a message and reaches the log instead of blanking the app. This bug would have been diagnosable from a player's log in one minute with that in place; instead it took three reports and a live probe.
Reported within eleven hours of beta.7 by Vinni_Pukh (CachyOS), b0b4444 and Villoch (Windows x64) on the mod database listing, and by a friend of NekoJess on the Discord: opening Manage Mods on an installation shows a blank screen.
Root cause, reproduced against the live mod database rather than a fixture.
installedModTagsinsrc/domain/mods/installedFilters.ts(new in #348) collects every_mod.tagsentry across the installed mods and folds case withvalue.toLowerCase(). The ModDB API returnstags: ["Cosmetics", "Crafting", "Storage", null]for Vanilla Variants, a very popular mod.null.toLowerCase()throws on the first render of the page, and since the renderer has no error boundary, React unmounts the whole tree: blank screen, nothing in the log.Anyone with Vanilla Variants, or any other mod whose listing carries a non-string tag, hits it. The fixtures in
tests/never did, because they were written by hand from the API's documented shape rather than from what it actually returns.Three things follow from this, in order of urgency:
nullinsidetags), not a sanitised one. Ship as beta.8._modcurrently trusts a documented shape the server does not honour.