Crash Due to Double Buffering

A* version: 4.3.47
Unity version: 2020.3.20f1 LTS, using IL2CPP and the URP
OS: Windows 10 19041.1288

Hello, I am experiencing a crash in my player build (haven’t tested in the editor) after enabling double buffering. I tested multiple times, only enabling and disabling double buffering and enabling it causes the crash while disabling it causes the game to run fine. As a new user I can’t post attachments, so here is a link with the player log (which doesn’t seem to be too helpful) as well as screenshots of my A* config. The crash seems to occur as soon as my first AI unit is instantiated. Please let me know if there is any more info I can provide:

After some more testing, the crash doesn’t happen every time, but sometimes, the game continues to run but I get errors elsewhere, not sure the cause.

I also uploaded another (more helpful) error log. This time it is giving me this error:

ERROR: SymGetSymFromAddr64, GetLastError: ‘Attempt to access invalid address.’ (Address: 00007FF756B711F2)
0x00007FF756B711F2 (CannonsVsMinions) (function-name not available)


Thank you for the bug report.
Can you replicate this if you enable burst safety checks?

I could not reproduce that error in the editor whether using burst safety checks or not. I did notice another error though that wasn’t present in the player:

rigidbody.force assign attempt for ‘Minion(Clone) (0 - 55)’ is not valid. Input force is { NaN, 0.000000, NaN }.

After some more digging, I found that this error is caused by:

movementDelta = rvoController.CalculateMovementDelta(deltaTime);

returning { NaN, NaN, NaN } (I believe only the first frame or so after a unit is instantiated at runtime). But this only happens when using double buffering.

After inserting:

if (float.IsNaN(movementDelta.x)) return;

at the top my custom movement script’s FinalizeMovement() method, all errors and crashes have ceased.