Yeah what this really needs is to be tapped, because if it was caught, the error would need to be re-thrown. It probably needs to be re-thrown here anyway actually, and probably a test is needed for that.

I wouldn't say this is an anti-pattern though, this is how promises work in the spec. The catch piece is actually just sugar added by when.js.