_args.Sender error

I’m getting this error:

ERROR: _args.Sender was null
    System.Exception occured.
       at Fuse.Reactive.CrossThreadExceptionHandler.CheckAndThrow() in C:\ProgramData\Uno\Packages\Fuse.Reactive\0.18.8\$.uno:line 1540
       at Fuse.Reactive.JavaScript.HandleWorkerException() in C:\ProgramData\Uno\Packages\Fuse.Reactive\0.18.8\$.uno:line 1580
       at Fuse.UpdateListener.Invoke() in C:\ProgramData\Uno\Packages\FuseCore\0.18.8\$.uno:line 6596
       at Fuse.UpdateManager.Update(Stage stage) in C:\ProgramData\Uno\Packages\FuseCore\0.18.8\$.uno:line 6817
LOG: One or more errors occurred.

It happens generally when I’m clearing an observable list and replacing it’s contents, but, sometimes this happens literally after a few seconds when I don’t do anything. I think its specific to my project, but I can just press Restart and then try again and it’ll work but it can take a few restarts.

This also never happens when I build to device (not preview).

Cheers

Without knowing the JS source for me it seems like a possible async workers issue ex. clearing an observable in a timer while still processing it in another async loop. The way I’m using observable list is to put a flag ahead of processing and unflag when done (like a semaphore). I haven’t seen that exception yet though. Hope it helps.

Do you have a project that we can use to reproduce this? Are you on Mac or Windows?

I can’t isolate it. There’s a lot of observables being manipulated at the same time, and there is a timer running, but it isn’t/shouldn’t be touching any observable list.

I don’t want to release the source publicly.

I’m on Windows.

UPDATE

When I check the observable list just before the app crashes, every single subscriber is null, I’m not sure what that means or how I can prevent it, but I think this is where it’s going wrong

This happened when the observable values was replaced using clear and then add, instead of using replaceAll. So the nodes was unrooted and the event could not execute. I have added a better errormessage to handle this case differently in the future.