Wow, so it's even worse: that spec says {ok, not_found, state()}, yet what our backends actually send now is {error, not_found, state()}.  None of this is up to date.  I think the real answer here is to get our story straight and define the expected backend return values and how they are handled. I would not add a reference to bad_crc until it's an official backend error code. But I still think that the best we have right now is to handle all errors in the same way.  What I'm trying to fix here is the inconsistency of handling something like a complete removal of all backend files (handled as not_found, ok, go on and write), vs. a simple CRC failure bringing the process down and preventing a write, which is hardly HA.