Rak4631 crashes

I have been using rak5005 and rak4631 for more than a year, and in my different projects that I carry out, an event always occurs in which the device automatically crashes after 1 or 2 months and that is causing me conflicts. For example, in a vehicle monitoring solution that I have, the devices stop reporting and when I check them they are crashed. Why does this happen? Some of my codes have the watchdog enabled to avoid this type of problem where, because it takes more than 4 seconds to execute a task, it must be restarted, however the problem continues to persist, is the bootloader generating this problem?

Could this be a memory exhaustion or corruption issue?
Can you trace it to a particular infrequent event?
Can you bench run it with serial port attached dumping minimal debug info?
I suppose one could attach an SD drive device and record events there for play back.
Might even be able to store a bread crumb trail to non volatile flash, and check with debugger, though I don’t know the particulars on how to do that.

If you can bench run it you can integrate my embedded cli code. It runs from an attached usb serial port to terminal. A simple command line interface into your app. It has a heap and stack check command as well as a couple others. Lets you check heap and stack stats on the fly. Assuming it works as intended??? Be skeptical as it not been widely tested.
It is code for PlatformIO but should be able to port to Arduino IDE if needed.

Perhaps you can take a laptop to the installed device occasionally and connect the serial port and check stats??? (not sure if that would be successful or not)