This happens at least on the Nucleo476 example code. The problem is that whoever implemented the error handling seemingly didn't understand how the EE_STATUSMASK bitmasks should be used. This line should be if( eeStatus & EE_STATUSMASK_CLEANUP ), and this line should be if( eeStatus & EE_STATUSMASK_ERROR ). The EE_STATUSMASK_CLEANUP line happens to work because there's only one bit set in that mask. The EE_STATUSMASK_ERROR mask doesn't work at all because it's 0xff, so it would require eeStatus to be 0xff which never happens.