diff --git a/pallets/membership/src/lib.rs b/pallets/membership/src/lib.rs
index 1dc2c7ee876bf807c720a853bd96ceb036619dfc..af1e859d20638bdf9a81d81579350ca352d67dc5 100644
--- a/pallets/membership/src/lib.rs
+++ b/pallets/membership/src/lib.rs
@@ -405,10 +405,12 @@ pub mod pallet {
             let mut total_weight: Weight = 0;
 
             for idty_id in PendingMembershipsExpireOn::<T, I>::take(block_number) {
-                PendingMembership::<T, I>::remove(&idty_id);
-                Self::deposit_event(Event::PendingMembershipExpired(idty_id));
-                total_weight +=
-                    T::OnEvent::on_event(&sp_membership::Event::PendingMembershipExpired(idty_id));
+                if PendingMembership::<T, I>::take(&idty_id).is_some() {
+                    Self::deposit_event(Event::PendingMembershipExpired(idty_id));
+                    total_weight += T::OnEvent::on_event(
+                        &sp_membership::Event::PendingMembershipExpired(idty_id),
+                    );
+                }
             }
 
             total_weight