
If you call setAttrs in a 'sheet:opened' handler in a sheetworker script, it generally doesn't generate the proper change events for attributes that are updated, so dependent sheet workers don't get called. I have verified this by putting logging into the trigger method in sheetsandboxworker.js - usually I get no events firing at all from changes that I make in setAttrs. This is a Heisenbug that goes away if you step through the code in the debugger - presumably because the problem is a race condition of some sort. It would seem the either sheet:opened needs to not be fired until the rest of the system is ready for it, or setAttrs calls from it need to be queued somewhere until the relevant code is ready so that events get generated properly. I suspect that this behaviour varies depending on server load/connection speed/random neutrino activity, so it's not always predictable, but hopefully now I've identified it (after a *very* frustrating afternoon!) it shouldn't be too hard to track down. Given that the API can't trigger sheetWorkers, being able to take substantial action in sheet:opened is actually pretty essential - we're using it to populate the 5e shaped sheet from import data built by the API - so I'd say this is actually quite a high priority problem.