We've got an application (not using SD or SDK functions) that locks up the nRF51822 and does not reset even though the watchdog is configured and confirmed to work in all situations we can create. I thought I'd found a clue here but in practice when I write code that forces entry to HardFault_Handler, the watchdog does reset the MCU after the timeout expires. Tested with both v2 and v3 nRF51822 chips. We normally run with NRF_WDT->CONFIG.HALT cleared (power-up default), unlike the other question, but I get the same behavior when it's set.
Is it true that the HardFault exception priority is high enough to block the watchdog? If so, what might explains why it works for me in that situation? Is there any other situation where the watchdog might fail?