diff --git a/substrate/primitives/api/src/lib.rs b/substrate/primitives/api/src/lib.rs
index 91d4b07a1cefc8ed4bc8d5ee4dad1649b431c5c8..4ff4becb80f482c2dafe84693242244b253d6039 100644
--- a/substrate/primitives/api/src/lib.rs
+++ b/substrate/primitives/api/src/lib.rs
@@ -519,6 +519,8 @@ pub enum ApiError {
 	StateBackendIsNotTrie,
 	#[error(transparent)]
 	Application(#[from] Box<dyn std::error::Error + Send + Sync>),
+	#[error("Api called for an unknown Block: {0}")]
+	UnknownBlock(String),
 }
 
 /// Extends the runtime api implementation with some common functionality.
diff --git a/substrate/primitives/blockchain/src/error.rs b/substrate/primitives/blockchain/src/error.rs
index 783c40c4061ade2aca29cb54bb2708ad4c400962..6585cc54f15820915f8ce45256d893d1befc9294 100644
--- a/substrate/primitives/blockchain/src/error.rs
+++ b/substrate/primitives/blockchain/src/error.rs
@@ -191,6 +191,7 @@ impl From<Box<dyn sp_state_machine::Error>> for Error {
 impl From<Error> for ApiError {
 	fn from(err: Error) -> ApiError {
 		match err {
+			Error::UnknownBlock(msg) => ApiError::UnknownBlock(msg),
 			Error::RuntimeApiError(err) => err,
 			e => ApiError::Application(Box::new(e)),
 		}