Raise failure on save in a more appropriate place
Finally, I figured out why retrieved_at wasn't updating (it created a
local variable - whoops)