yes, I wouldn’t expect the mutex itself to be corrupted, just the pointer to it in the object allocated on the application stack. My suspicion is that whatever the overtrampled object points to in the location where itsMutex is expected to FreeRTOS looks (for whatever reasons) close enough to an object so that it tries to look at it as a valid mutex, then throws the assert.
It’s basically the only scenario I can think of that could throw the assert, and yes, it can happen intermittendly. If the random asserts happen reliably in some known time frame, I’d bump the stacks on your test environment temporarily and see if you still see the asserts. It should be a test that doesn’t cost you much but can spare you a good deal of headaches if it succeeds.