diff --git a/substrate/client/consensus/aura/src/lib.rs b/substrate/client/consensus/aura/src/lib.rs
index a0eed6e35310e67113b20c441a28496c5304faf4..734cecca9b30b197cc0eac9044edd4c2e47ffe79 100644
--- a/substrate/client/consensus/aura/src/lib.rs
+++ b/substrate/client/consensus/aura/src/lib.rs
@@ -769,7 +769,7 @@ mod tests {
 
 		assert_eq!(client.chain_info().best_number, 0);
 		assert_eq!(
-			authorities(&client, &BlockId::Number(0)).unwrap(),
+			authorities(&client, &BlockId::Hash(client.chain_info().best_hash)).unwrap(),
 			vec![
 				Keyring::Alice.public().into(),
 				Keyring::Bob.public().into(),
diff --git a/substrate/client/db/benches/state_access.rs b/substrate/client/db/benches/state_access.rs
index 714dda82d61b7e0c1a8e1da53abd269309d36cb3..4f4c10bcc8f534ddb3c59f98a30621d35ea2cd6e 100644
--- a/substrate/client/db/benches/state_access.rs
+++ b/substrate/client/db/benches/state_access.rs
@@ -84,7 +84,7 @@ fn insert_blocks(db: &Backend<Block>, storage: Vec<(Vec<u8>, Vec<u8>)>) -> H256
 			.map(|(k, v)| (k.clone(), Some(v.clone())))
 			.collect::<Vec<_>>();
 
-		let (state_root, tx) = db.state_at(BlockId::Number(number - 1)).unwrap().storage_root(
+		let (state_root, tx) = db.state_at(BlockId::Hash(parent_hash)).unwrap().storage_root(
 			changes.iter().map(|(k, v)| (k.as_slice(), v.as_deref())),
 			StateVersion::V1,
 		);
diff --git a/substrate/test-utils/runtime/src/lib.rs b/substrate/test-utils/runtime/src/lib.rs
index 3db0e5510057bd80ecb0707b920a25c5ba0544a1..8bda4ea602428a10cd45879dfedd1d23bc16b1c0 100644
--- a/substrate/test-utils/runtime/src/lib.rs
+++ b/substrate/test-utils/runtime/src/lib.rs
@@ -1340,7 +1340,7 @@ mod tests {
 			.set_execution_strategy(ExecutionStrategy::AlwaysWasm)
 			.set_heap_pages(8)
 			.build();
-		let block_id = BlockId::Number(client.chain_info().best_number);
+		let block_id = BlockId::Hash(client.chain_info().best_hash);
 
 		// Try to allocate 1024k of memory on heap. This is going to fail since it is twice larger
 		// than the heap.
@@ -1369,7 +1369,7 @@ mod tests {
 		let client =
 			TestClientBuilder::new().set_execution_strategy(ExecutionStrategy::Both).build();
 		let runtime_api = client.runtime_api();
-		let block_id = BlockId::Number(client.chain_info().best_number);
+		let block_id = BlockId::Hash(client.chain_info().best_hash);
 
 		runtime_api.test_storage(&block_id).unwrap();
 	}
@@ -1396,7 +1396,7 @@ mod tests {
 		let client =
 			TestClientBuilder::new().set_execution_strategy(ExecutionStrategy::Both).build();
 		let runtime_api = client.runtime_api();
-		let block_id = BlockId::Number(client.chain_info().best_number);
+		let block_id = BlockId::Hash(client.chain_info().best_hash);
 
 		runtime_api.test_witness(&block_id, proof, root).unwrap();
 	}
diff --git a/substrate/utils/frame/benchmarking-cli/src/storage/cmd.rs b/substrate/utils/frame/benchmarking-cli/src/storage/cmd.rs
index 1d91e8f0b05174312656a2eb04293fa9ca13b52a..a4c4188dfe0736687d947d680de506675d452b61 100644
--- a/substrate/utils/frame/benchmarking-cli/src/storage/cmd.rs
+++ b/substrate/utils/frame/benchmarking-cli/src/storage/cmd.rs
@@ -191,7 +191,7 @@ impl StorageCmd {
 		B: BlockT + Debug,
 		BA: ClientBackend<B>,
 	{
-		let block = BlockId::Number(client.usage_info().chain.best_number);
+		let block = BlockId::Hash(client.usage_info().chain.best_hash);
 		let empty_prefix = StorageKey(Vec::new());
 		let mut keys = client.storage_keys(&block, &empty_prefix)?;
 		let (mut rng, _) = new_rng(None);
diff --git a/substrate/utils/frame/benchmarking-cli/src/storage/read.rs b/substrate/utils/frame/benchmarking-cli/src/storage/read.rs
index cba318f87ea9865593020b07cc599ed03954bdc8..5e8a310ea5c5a37ad52411fb4cb7c3c2cb122d5a 100644
--- a/substrate/utils/frame/benchmarking-cli/src/storage/read.rs
+++ b/substrate/utils/frame/benchmarking-cli/src/storage/read.rs
@@ -41,7 +41,7 @@ impl StorageCmd {
 		<<B as BlockT>::Header as HeaderT>::Number: From<u32>,
 	{
 		let mut record = BenchRecord::default();
-		let block = BlockId::Number(client.usage_info().chain.best_number);
+		let block = BlockId::Hash(client.usage_info().chain.best_hash);
 
 		info!("Preparing keys from block {}", block);
 		// Load all keys and randomly shuffle them.
diff --git a/substrate/utils/frame/benchmarking-cli/src/storage/write.rs b/substrate/utils/frame/benchmarking-cli/src/storage/write.rs
index 9a3821a7095f813b6a87e2ad35dda1dae74509b1..0ef2a2f9ae113db1689f018e6276662c795d77c6 100644
--- a/substrate/utils/frame/benchmarking-cli/src/storage/write.rs
+++ b/substrate/utils/frame/benchmarking-cli/src/storage/write.rs
@@ -57,7 +57,7 @@ impl StorageCmd {
 		// Store the time that it took to write each value.
 		let mut record = BenchRecord::default();
 
-		let block = BlockId::Number(client.usage_info().chain.best_number);
+		let block = BlockId::Hash(client.usage_info().chain.best_hash);
 		let header = client.header(block)?.ok_or("Header not found")?;
 		let original_root = *header.state_root();
 		let trie = DbStateBuilder::<Block>::new(storage.clone(), original_root).build();