# must fail: receipts_binding_recovery_object_not_held # a recovery record's matchers dropped when the object is not held (receipts::check_index) diff --git a/wai/wai-rs/src/http_binding/receipts.rs b/wai/wai-rs/src/http_binding/receipts.rs index 83cd7ccb..fab80364 100644 --- a/wai/wai-rs/src/http_binding/receipts.rs +++ b/wai/wai-rs/src/http_binding/receipts.rs @@ -825,6 +825,7 @@ pub fn check_index( // A recovery through a soft binding runs only for an object the client holds (the // value it compares is computed from it): check_claim gates it on `held`. The // matchers serve step 6 of a recovery record whether or not the object is held. + let recovery = recovery.filter(|_| matches!(held, ObjectHeld::Object(_))); let claims = ix .claims .iter()