diff --git src/wp-admin/includes/ajax-actions.php src/wp-admin/includes/ajax-actions.php
index d3416c6126..adfc5bf513 100644
--- src/wp-admin/includes/ajax-actions.php
+++ src/wp-admin/includes/ajax-actions.php
@@ -4486,8 +4486,8 @@ function wp_ajax_wp_privacy_erase_personal_data() {
 	 *     An array of callable erasers of personal data. Default empty array.
 	 *     [
 	 *         callback             string Callable eraser that accepts an email address and
-	 *                                     a page and returns an array with the number of items
-	 *                                     removed, the number of items retained and any messages
+	 *                                     a page and returns an array with boolean values for
+	 *                                     whether items were removed or retained and any messages
 	 *                                     from the eraser, as well as if additional pages are
 	 *                                     available.
 	 *         eraser_friendly_name string Translated user facing friendly name for the eraser.
@@ -4562,19 +4562,19 @@ function wp_ajax_wp_privacy_erase_personal_data() {
 				)
 			);
 		}
-		if ( ! array_key_exists( 'num_items_removed', $response ) ) {
+		if ( ! array_key_exists( 'items_removed', $response ) ) {
 			wp_send_json_error(
 				sprintf(
-					__( 'Error: Expected num_items_removed key in response array from %s eraser (index %d).' ),
+					__( 'Error: Expected items_removed key in response array from %s eraser (index %d).' ),
 					$eraser_friendly_name,
 					$eraser_index
 				)
 			);
 		}
-		if ( ! array_key_exists( 'num_items_retained', $response ) ) {
+		if ( ! array_key_exists( 'items_retained', $response ) ) {
 			wp_send_json_error(
 				sprintf(
-					__( 'Error: Expected num_items_retained key in response array from %s eraser (index %d).' ),
+					__( 'Error: Expected items_retained key in response array from %s eraser (index %d).' ),
 					$eraser_friendly_name,
 					$eraser_index
 				)
@@ -4610,10 +4610,10 @@ function wp_ajax_wp_privacy_erase_personal_data() {
 	} else {
 		// No erasers, so we're done
 		$response = array(
-			'num_items_removed' => 0,
-			'num_items_retained' => 0,
-			'messages' => array(),
-			'done' => true,
+			'items_removed'  => false,
+			'items_retained' => false,
+			'messages'       => array(),
+			'done'           => true,
 		);
 	}
 
diff --git src/wp-admin/js/xfn.js src/wp-admin/js/xfn.js
index 7881c76159..9274c573c4 100644
--- src/wp-admin/js/xfn.js
+++ src/wp-admin/js/xfn.js
@@ -61,8 +61,8 @@ jQuery( document ).ready( function( $ ) {
 		var nonce         = $action.data( 'nonce' );
 		var erasersCount  = $action.data( 'erasers-count' );
 
-		var removedCount  = 0;
-		var retainedCount = 0;
+		var hasRemoved    = false;
+		var hasRetained   = false;
 		var messages      = [];
 
 		$action.blur();
@@ -72,15 +72,15 @@ jQuery( document ).ready( function( $ ) {
 			set_action_state( $action, 'remove_personal_data_idle' );
 			var summaryMessage = strings.noDataFound;
 			var classes = 'notice-success';
-			if ( 0 === removedCount ) {
-				if ( 0 === retainedCount ) {
+			if ( false === hasRemoved ) {
+				if ( false === hasRetained ) {
 					summaryMessage = strings.noDataFound;
 				} else {
 					summaryMessage = strings.noneRemoved;
 					classes = 'notice-warning';
 				}
 			} else {
-				if ( 0 === retainedCount ) {
+				if ( false === hasRetained ) {
 					summaryMessage = strings.foundAndRemoved;
 				} else {
 					summaryMessage = strings.someNotRemoved;
@@ -112,11 +112,11 @@ jQuery( document ).ready( function( $ ) {
 					return;
 				}
 				var responseData = response.data;
-				if ( responseData.num_items_removed ) {
-					removedCount += responseData.num_items_removed;
+				if ( responseData.items_removed ) {
+					hasRemoved = hasRemoved || responseData.items_removed;
 				}
-				if ( responseData.num_items_retained ) {
-					retainedCount += responseData.num_items_removed;
+				if ( responseData.items_retained ) {
+					hasRetained = hasRetained || responseData.items_retained;
 				}
 				if ( responseData.messages ) {
 					messages = messages.concat( responseData.messages );
diff --git src/wp-includes/comment.php src/wp-includes/comment.php
index 6b6e7b45af..87e0cbac3a 100644
--- src/wp-includes/comment.php
+++ src/wp-includes/comment.php
@@ -3410,17 +3410,18 @@ function wp_comments_personal_data_eraser( $email_address, $page = 1 ) {
 
 	if ( empty( $email_address ) ) {
 		return array(
-			'num_items_removed'  => 0,
-			'num_items_retained' => 0,
-			'messages'           => array(),
-			'done'               => true,
+			'items_removed'  => false,
+			'items_retained' => false,
+			'messages'       => array(),
+			'done'           => true,
 		);
 	}
 
 	// Limit us to 500 comments at a time to avoid timing out.
-	$number            = 500;
-	$page              = (int) $page;
-	$num_items_removed = 0;
+	$number         = 500;
+	$page           = (int) $page;
+	$items_removed  = false;
+	$items_retained = false;
 
 	$comments = get_comments(
 		array(
@@ -3467,6 +3468,8 @@ function wp_comments_personal_data_eraser( $email_address, $page = 1 ) {
 				$messages[] = sprintf( __( 'Comment %d contains personal data but could not be anonymized.' ), $comment_id );
 			}
 
+			$items_retained = true;
+
 			continue;
 		}
 
@@ -3477,17 +3480,20 @@ function wp_comments_personal_data_eraser( $email_address, $page = 1 ) {
 		$updated = $wpdb->update( $wpdb->comments, $anonymized_comment, $args );
 
 		if ( $updated ) {
-			$num_items_removed++;
+			$items_removed = true;
 			clean_comment_cache( $comment_id );
+		} else {
+			$items_retained = true;
 		}
 	}
 
 	$done = count( $comments ) < $number;
 
 	return array(
-		'num_items_removed'  => $num_items_removed,
-		'num_items_retained' => count( $comments ) - $num_items_removed,
-		'messages'           => $messages,
-		'done'               => $done,
+		'items_removed'  => $items_removed,
+		'items_retained' => $items_retained,
+		'messages'       => $messages,
+		'done'           => $done,
 	);
 }
+
diff --git tests/phpunit/tests/comment.php tests/phpunit/tests/comment.php
index 29453179e4..6e9fd60712 100644
--- tests/phpunit/tests/comment.php
+++ tests/phpunit/tests/comment.php
@@ -877,10 +877,10 @@ class Tests_Comment extends WP_UnitTestCase {
 
 		$actual   = wp_comments_personal_data_eraser( 'nocommentsfound@local.host' );
 		$expected = array(
-			'num_items_removed'  => 0,
-			'num_items_retained' => 0,
-			'messages'           => array(),
-			'done'               => true,
+			'items_removed'  => false,
+			'items_retained' => false,
+			'messages'       => array(),
+			'done'           => true,
 		);
 
 		$this->assertSame( $expected, $actual );
@@ -908,10 +908,10 @@ class Tests_Comment extends WP_UnitTestCase {
 
 		$actual   = wp_comments_personal_data_eraser( $args['comment_author_email'] );
 		$expected = array(
-			'num_items_removed'  => 1,
-			'num_items_retained' => 0,
-			'messages'           => array(),
-			'done'               => true,
+			'items_removed'  => true,
+			'items_retained' => false,
+			'messages'       => array(),
+			'done'           => true,
 		);
 
 		$this->assertSame( $expected, $actual );
@@ -939,10 +939,10 @@ class Tests_Comment extends WP_UnitTestCase {
 
 		$actual   = wp_comments_personal_data_eraser( $args['comment_author_email'], 2 );
 		$expected = array(
-			'num_items_removed'  => 0,
-			'num_items_retained' => 0,
-			'messages'           => array(),
-			'done'               => true,
+			'items_removed'  => false,
+			'items_retained' => false,
+			'messages'       => array(),
+			'done'           => true,
 		);
 
 		$this->assertSame( $expected, $actual );
@@ -975,10 +975,10 @@ class Tests_Comment extends WP_UnitTestCase {
 		$message = sprintf( 'Comment %d contains personal data but could not be anonymized.', $comment_id );
 
 		$expected = array(
-			'num_items_removed'  => 0,
-			'num_items_retained' => 1,
-			'messages'           => array( $message ),
-			'done'               => true,
+			'items_removed'  => false,
+			'items_retained' => true,
+			'messages'       => array( $message ),
+			'done'           => true,
 		);
 
 		$this->assertSame( $expected, $actual );
@@ -1011,10 +1011,10 @@ class Tests_Comment extends WP_UnitTestCase {
 		$message = sprintf( 'Some custom message for comment %d.', $comment_id );
 
 		$expected = array(
-			'num_items_removed'  => 0,
-			'num_items_retained' => 1,
-			'messages'           => array( $message ),
-			'done'               => true,
+			'items_removed'  => false,
+			'items_retained' => true,
+			'messages'       => array( $message ),
+			'done'           => true,
 		);
 
 		$this->assertSame( $expected, $actual );
