diff --git a/substrate/primitives/runtime/src/generic/digest.rs b/substrate/primitives/runtime/src/generic/digest.rs
index 4d09b587932905279a7817aab8be397aa01eb01b..9d4fbe48d55a57e80ad8e3872f85d86c1d631e3d 100644
--- a/substrate/primitives/runtime/src/generic/digest.rs
+++ b/substrate/primitives/runtime/src/generic/digest.rs
@@ -87,6 +87,12 @@ pub enum DigestItem<Hash> {
 	/// the consensus engine can (and should) read them itself to avoid
 	/// code and state duplication. It is erroneous for a runtime to produce
 	/// these, but this is not (yet) checked.
+	///
+	/// NOTE: the runtime is not allowed to panic or fail in an `on_initialize`
+	/// call if an expected `PreRuntime` digest is not present. It is the
+	/// responsibility of a external block verifier to check this. Runtime API calls
+	/// will initialize the block without pre-runtime digests, so initialization
+	/// cannot fail when they are missing.
 	PreRuntime(ConsensusEngineId, Vec<u8>),
 
 	/// A message from the runtime to the consensus engine. This should *never*