diff --git a/polkadot/node/core/dispute-coordinator/src/initialized.rs b/polkadot/node/core/dispute-coordinator/src/initialized.rs
index 7d64c91fb63f4bf33ac55e9d37b913123e8266fe..9efd479467901c1e21756f75b6515580cbbe169c 100644
--- a/polkadot/node/core/dispute-coordinator/src/initialized.rs
+++ b/polkadot/node/core/dispute-coordinator/src/initialized.rs
@@ -1003,6 +1003,16 @@ impl Initialized {
 
 		gum::trace!(target: LOG_TARGET, ?candidate_hash, ?session, "Loaded votes");
 
+		let controlled_indices = env.controlled_indices();
+		let own_statements = statements
+			.iter()
+			.filter(|(statement, validator_index)| {
+				controlled_indices.contains(validator_index) &&
+					*statement.candidate_hash() == candidate_hash
+			})
+			.cloned()
+			.collect::<Vec<_>>();
+
 		let import_result = {
 			let intermediate_result = old_state.import_statements(&env, statements, now);
 
@@ -1307,6 +1317,16 @@ impl Initialized {
 				session,
 				"Dispute on candidate concluded with 'valid' result",
 			);
+			for (statement, validator_index) in own_statements.iter() {
+				if statement.statement().indicates_invalidity() {
+					gum::warn!(
+						target: LOG_TARGET,
+						?candidate_hash,
+						?validator_index,
+						"Voted against a candidate that was concluded valid.",
+					);
+				}
+			}
 			self.metrics.on_concluded_valid();
 		}
 		if import_result.is_freshly_concluded_against() {
@@ -1316,6 +1336,16 @@ impl Initialized {
 				session,
 				"Dispute on candidate concluded with 'invalid' result",
 			);
+			for (statement, validator_index) in own_statements.iter() {
+				if statement.statement().indicates_validity() {
+					gum::warn!(
+						target: LOG_TARGET,
+						?candidate_hash,
+						?validator_index,
+						"Voted for a candidate that was concluded invalid.",
+					);
+				}
+			}
 			self.metrics.on_concluded_invalid();
 		}
 
diff --git a/polkadot/zombienet_tests/functional/0002-parachains-disputes.zndsl b/polkadot/zombienet_tests/functional/0002-parachains-disputes.zndsl
index e17ac79399f95ea6a0e54cc0a61f142116634a40..31f2b372f894733bc821e05d292200bd2a284712 100644
--- a/polkadot/zombienet_tests/functional/0002-parachains-disputes.zndsl
+++ b/polkadot/zombienet_tests/functional/0002-parachains-disputes.zndsl
@@ -53,3 +53,6 @@ ferdie: reports polkadot_parachain_disputes_finality_lag is 0
 eve: reports polkadot_parachain_disputes_finality_lag is 0
 one: reports polkadot_parachain_disputes_finality_lag is 0
 two: reports polkadot_parachain_disputes_finality_lag is 0
+
+# Check participating in the losing side of a dispute logged
+alice: log line contains "Voted against a candidate that was concluded valid." within 180 seconds
diff --git a/polkadot/zombienet_tests/functional/0003-parachains-garbage-candidate.zndsl b/polkadot/zombienet_tests/functional/0003-parachains-garbage-candidate.zndsl
index c4b2dbf20a178a67384a67de91f76c0639ca68fa..ccc1ea258f52c155dc9867454c34607877294394 100644
--- a/polkadot/zombienet_tests/functional/0003-parachains-garbage-candidate.zndsl
+++ b/polkadot/zombienet_tests/functional/0003-parachains-garbage-candidate.zndsl
@@ -39,3 +39,6 @@ honest-validator-2: reports parachain_candidate_disputes_total is at least 2 wit
 # Disputes should always end as "invalid"
 honest-validator-0: reports parachain_candidate_dispute_concluded{validity="invalid"} is at least 2 within 15 seconds
 honest-validator-1: reports parachain_candidate_dispute_concluded{validity="valid"} is 0 within 15 seconds
+
+# Check participating in the losing side of a dispute logged
+malus-validator: log line contains "Voted for a candidate that was concluded invalid." within 180 seconds