Hi Yasmine,
There seems to be 2 separate issues here.
1. Moving the device from commit cf21d5760 (Siliconlabs SDK v3.2.2) to 55af6ce2c (Siliconlabs SDK v4.0.1) causes the device to fault.
2. Device in commit cf21d5760 is unable to join the existing network.
I suspect that you are seeing an assert and not a hard fault in the first issue and this is expected. This is because in 3.2.2 all the security materials were stored as literal strings in the NVM. In 4.0.1 we moved towards PSA and now the Openthread supports storing all security keys inside PSA and use only key references for all the crypto operations. As you are storing literal keys in 3.2.2 and doing a FW upgrade, to key references, the dataset manager sees that the device is not factory new and tries to read the NetworkKey and other security keys from PSA. This fails, because they are not stored in PSA yet causing the assert.
I am a bit unclear on the second issue. Can you elaborate a bit more on what you are seeing? Am I correct in my understanding that with commit cf21d5760 if you erase a dataset and try to join a existing network, with -DOPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE = 0, the device does not join the network and it is only able to join if you remove -DOPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE = 0 from the build?
Please share some more information on the second issue to help us understand the issue more clearly.
Best Regards,
Hemanth