Shouldn't you call on_failure?