"or the empty string on error" needs to be amended, since that'd only be the case with `on_fail: ''`, right?