Load failed: TypeError: Cannot read properties of undefined (reading 'width')

  • What the bug is

project isnt loading with error "Load failed: TypeError: Cannot read properties of undefined (reading 'width')" and any saves from the 1 backup that works seems to just stop working. the error message also changed to "rightarrow is not defined" for a few hours but i dont have any screenshots of that

  • How to trigger it

i dont exactly know but it started happening after i changed the backround color, but now it wont go away no matter what i do.

  • Your browser/computer (eg. Chrome on Mac OS X)

chrome and firefox both seem to have this issue idk about edge

  • When you saw this bug (the date or Snap*!* version are equally helpful).

the 4th of January 2023 around 1pm

Project: Snap! Build Your Own Blocks

also i looked at other topics and i couldnt find anything helpful other than the recover button having a old save from before the bug. the problem is that i cant save or export that save because the bug will come back.

Your project is corrupted. You'll have to repair it.

I think @deltav knows the project is corrupted! The question is what to do about it.

First thing is to save a recovered version under a different name, because if you save a project under the same name, recover will forget your last working version. Then we can look into the problem.

Maybe try an XML truncator or an XML recovery tool? I've already tried the truncator one, alas, without success.

I did a bit of digging, and it seems it has something to do with loading the right arrow on a MultiArgMorph morph (variadic input). I have no idea where and why it's happening, since this really shouldn't happen.

Here's what it looks like in the console

Uncaught TypeError: Cannot read properties of undefined (reading 'width')
    at MultiArgMorph.fixArrowsLayout (blocks.js?version=2022-08-03:12797:36)
    at MultiArgMorph.fixLayout (blocks.js?version=2022-08-03:12784:10)
    at SnapSerializer.loadInput (store.js?version=2022-08-01:1346:23)
    at store.js?version=2022-08-01:1307:22
    at Array.forEach (<anonymous>)
    at SnapSerializer.loadBlock (store.js?version=2022-08-01:1287:20)
    at SnapSerializer.loadInput (store.js?version=2022-08-01:1350:20)
    at store.js?version=2022-08-01:1307:22
    at Array.forEach (<anonymous>)
    at SnapSerializer.loadBlock (store.js?version=2022-08-01:1287:20)

The real issue is finding which block in the xml is causing this issue.

I'm sorry you're encountering this issue. I've recovered your project here. Please download it to your own account, then I'll delete the recovered version from mine again.

Dunno what caused this. I'm seeing a humongous project that imports all of SciSnap! for reasons I'm not sure. Usually I don't support any issues that arise in combination with 3rd party JS extensions, but leave it to their authors to support them.

Thanks! ive downloaded and replaced the project and made sure to back it up.