diff --git a/service_vm/comm/src/csr.rs b/service_vm/comm/src/csr.rs
index e913bb5..757d080 100644
--- a/service_vm/comm/src/csr.rs
+++ b/service_vm/comm/src/csr.rs
@@ -19,6 +19,7 @@
 use alloc::vec::Vec;
 use ciborium::Value;
 use coset::{self, CborSerializable, CoseError};
+use log::error;
 
 /// Represents a CSR sent from the client VM to the service VM for attestation.
 ///
@@ -54,8 +55,8 @@
             return Err(CoseError::UnexpectedItem("array", "array with 2 items"));
         }
         Ok(Self {
-            signed_csr_payload: try_as_bytes(arr.remove(1))?,
-            dice_cert_chain: try_as_bytes(arr.remove(0))?,
+            signed_csr_payload: try_as_bytes(arr.remove(1), "signed_csr_payload")?,
+            dice_cert_chain: try_as_bytes(arr.remove(0), "dice_cert_chain")?,
         })
     }
 }
@@ -93,17 +94,19 @@
             return Err(CoseError::UnexpectedItem("array", "array with 2 items"));
         }
         Ok(Self {
-            challenge: try_as_bytes(arr.remove(1))?,
-            public_key: try_as_bytes(arr.remove(0))?,
+            challenge: try_as_bytes(arr.remove(1), "challenge")?,
+            public_key: try_as_bytes(arr.remove(0), "public_key")?,
         })
     }
 }
 
-fn try_as_bytes(v: Value) -> coset::Result<Vec<u8>> {
+fn try_as_bytes(v: Value, context: &str) -> coset::Result<Vec<u8>> {
     if let Value::Bytes(data) = v {
         Ok(data)
     } else {
-        Err(CoseError::UnexpectedItem(cbor_value_type(&v), "bytes"))
+        let v_type = cbor_value_type(&v);
+        error!("The provided value type '{v_type}' is not of type 'bytes': {context}");
+        Err(CoseError::UnexpectedItem(v_type, "bytes"))
     }
 }
 
