diff --git a/src/test/subscription/t/026_worker_stats.pl b/src/test/subscription/t/026_worker_stats.pl
index e64e0a74b8..337f6545a6 100644
--- a/src/test/subscription/t/026_worker_stats.pl
+++ b/src/test/subscription/t/026_worker_stats.pl
@@ -23,13 +23,13 @@ WHERE last_error_relid = '$relname'::regclass];
 	'postgres', $check_sql,
 ) or die "Timed out while waiting for statistics to be updated";
 
-    my $result = $node->safe_psql(
-	'postgres',
-	qq[
+    $check_sql = qq[
 SELECT subname, last_error_command, last_error_relid::regclass, last_error_count > 0
 FROM pg_stat_subscription_workers
-WHERE last_error_relid = '$relname'::regclass;
-]);
+WHERE last_error_relid = '$relname'::regclass];
+    $check_sql .= " AND last_error_xid = '$xid'::xid;" if $xid ne '';
+
+    my $result = $node->safe_psql('postgres', $check_sql);
     is($result, $expected_error, $msg);
 }
 
