While creating a DFU bootloader based on the bootloader_secure_ble example, I was having trouble getting a device to boot into DFU mode.
Initially the device would get stuck in a reboot cycle and was unable to keep up with the logs. To mitigate this, we turned on debug mode by defining DEBUG to be 1, and added an app_error_fault_handler to the example in replacement of the app_error_handler_bare hack that was there before.
This provided us with the following symptoms
<debug> app: After nrf_dfu_transports_init
<error> app: Could not initalize DFU transport: 0x00000004
<error> app: ERROR!!!
<error> app: Error code: 0x4
<error> app: File name: ../../main.c
<error> app: Line number: 178
where Line 178 in main.c was from the error check here
ret_val = nrf_bootloader_init();
APP_ERROR_CHECK(ret_val);