tap: add fail callback