diff --git a/services/identity/src/database/device_list.rs b/services/identity/src/database/device_list.rs
--- a/services/identity/src/database/device_list.rs
+++ b/services/identity/src/database/device_list.rs
@@ -1650,12 +1650,13 @@
       self.delete_access_token_data(user_id, device_id).await?;
       trace!("Clearing keys for device {}", device_id);
       self.remove_device_data(user_id, device_id).await?;
-      trace!("Pruning OTKs for device {}", device_id);
-      self
-        .delete_otks_table_rows_for_user_device(user_id, device_id)
-        .await?;
     }
 
+    debug!("Pruning OTKs for {} devices", devices_being_removed.len());
+    self
+      .delete_otks_table_rows_for_user_devices(user_id, &devices_being_removed)
+      .await?;
+
     tokio::spawn(async move {
       debug!(
         "Attempting to delete Tunnelbroker data for {} devices",
diff --git a/services/identity/src/database/one_time_keys.rs b/services/identity/src/database/one_time_keys.rs
--- a/services/identity/src/database/one_time_keys.rs
+++ b/services/identity/src/database/one_time_keys.rs
@@ -397,7 +397,7 @@
   }
 
   /// Deletes all data for a single user's device from one-time keys table.
-  /// For multiple devices, see [`DatabaseClient::delete_otks_table_rows_for_user_device`].
+  /// For multiple devices, see [`DatabaseClient::delete_otks_table_rows_for_user_devices`].
   pub async fn delete_otks_table_rows_for_user_device(
     &self,
     user_id: &str,