diff --git a/Cargo.lock b/Cargo.lock
index d7b10d49007a..c7571bf6b8c8 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1763,6 +1763,19 @@ dependencies = [
"termcolor",
]
+[[package]]
+name = "env_logger"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
+dependencies = [
+ "atty",
+ "humantime 2.0.1",
+ "log",
+ "regex",
+ "termcolor",
+]
+
[[package]]
name = "environmental"
version = "1.1.3"
@@ -6946,16 +6959,18 @@ dependencies = [
name = "polkadot-service"
version = "0.9.8"
dependencies = [
+ "assert_matches",
"async-trait",
"beefy-gadget",
"beefy-primitives",
- "env_logger 0.8.4",
+ "env_logger 0.9.0",
"frame-system-rpc-runtime-api",
"futures 0.3.15",
"hex-literal",
"kusama-runtime",
"kvdb",
"kvdb-rocksdb",
+ "log",
"pallet-babe",
"pallet-im-online",
"pallet-mmr-primitives",
@@ -6985,6 +7000,7 @@ dependencies = [
"polkadot-node-core-runtime-api",
"polkadot-node-primitives",
"polkadot-node-subsystem",
+ "polkadot-node-subsystem-test-helpers",
"polkadot-node-subsystem-util",
"polkadot-overseer",
"polkadot-parachain",
diff --git a/node/core/approval-voting/src/lib.rs b/node/core/approval-voting/src/lib.rs
index 16ce617b7a3e..75410b5099b9 100644
--- a/node/core/approval-voting/src/lib.rs
+++ b/node/core/approval-voting/src/lib.rs
@@ -27,7 +27,7 @@ use polkadot_node_subsystem::{
ApprovalVotingMessage, RuntimeApiMessage, RuntimeApiRequest, ChainApiMessage,
ApprovalDistributionMessage, CandidateValidationMessage,
AvailabilityRecoveryMessage, ChainSelectionMessage, DisputeCoordinatorMessage,
- ImportStatementsResult,
+ ImportStatementsResult, HighestApprovedAncestorBlock, BlockDescription,
},
errors::RecoveryError,
overseer::{self, SubsystemSender as _}, SubsystemContext, SubsystemError, SubsystemResult, SpawnedSubsystem,
@@ -1180,7 +1180,7 @@ async fn handle_approved_ancestor(
target: Hash,
lower_bound: BlockNumber,
wakeups: &Wakeups,
-) -> SubsystemResult