diff --git a/apkdmverity/src/dm.rs b/apkdmverity/src/dm.rs
index 75a4366..2b44876 100644
--- a/apkdmverity/src/dm.rs
+++ b/apkdmverity/src/dm.rs
@@ -28,7 +28,7 @@
 
 use crate::util::*;
 
-use anyhow::Result;
+use anyhow::{Context, Result};
 use data_model::DataInit;
 use std::fs::{File, OpenOptions};
 use std::io::Write;
@@ -135,7 +135,11 @@
     /// Constructs a new `DeviceMapper` entrypoint. This is essentially the same as opening
     /// "/dev/mapper/control".
     pub fn new() -> Result<DeviceMapper> {
-        let f = OpenOptions::new().read(true).write(true).open(MAPPER_CONTROL)?;
+        let f = OpenOptions::new()
+            .read(true)
+            .write(true)
+            .open(MAPPER_CONTROL)
+            .context(format!("failed to open {}", MAPPER_CONTROL))?;
         Ok(DeviceMapper(f))
     }
 
@@ -145,7 +149,8 @@
         // Step 1: create an empty device
         let mut data = DmIoctl::new(&name)?;
         data.set_uuid(&uuid()?)?;
-        dm_dev_create(&self, &mut data)?;
+        dm_dev_create(&self, &mut data)
+            .context(format!("failed to create an empty device with name {}", &name))?;
 
         // Step 2: load table onto the device
         let payload_size = size_of::<DmIoctl>() + target.as_slice().len();
@@ -159,12 +164,13 @@
         let mut payload = Vec::with_capacity(payload_size);
         payload.extend_from_slice(data.as_slice());
         payload.extend_from_slice(target.as_slice());
-        dm_table_load(&self, payload.as_mut_ptr() as *mut DmIoctl)?;
+        dm_table_load(&self, payload.as_mut_ptr() as *mut DmIoctl)
+            .context("failed to load table")?;
 
         // Step 3: activate the device (note: the term 'suspend' might be misleading, but it
         // actually activates the table. See include/uapi/linux/dm-ioctl.h
         let mut data = DmIoctl::new(&name)?;
-        dm_dev_suspend(&self, &mut data)?;
+        dm_dev_suspend(&self, &mut data).context("failed to activate")?;
 
         // Step 4: wait unti the device is created and return the device path
         let path = Path::new(MAPPER_DEV_ROOT).join(&name);
@@ -177,7 +183,8 @@
     pub fn delete_device_deferred(&self, name: &str) -> Result<()> {
         let mut data = DmIoctl::new(&name)?;
         data.flags |= Flag::DM_DEFERRED_REMOVE;
-        dm_dev_remove(&self, &mut data)?;
+        dm_dev_remove(&self, &mut data)
+            .context(format!("failed to remove device with name {}", &name))?;
         Ok(())
     }
 }
diff --git a/apkdmverity/src/main.rs b/apkdmverity/src/main.rs
index 54d5def..321f79a 100644
--- a/apkdmverity/src/main.rs
+++ b/apkdmverity/src/main.rs
@@ -98,7 +98,9 @@
     // Parse the idsig file to locate the merkle tree in it, then attach the file to a loop device
     // with the offset so that the start of the merkle tree becomes the beginning of the loop
     // device.
-    let sig = V4Signature::from(File::open(&idsig)?)?;
+    let sig = V4Signature::from(
+        File::open(&idsig).context(format!("Failed to open idsig file {:?}", &idsig))?,
+    )?;
     let offset = sig.merkle_tree_offset;
     let size = sig.merkle_tree_size as u64;
     let hash_device = loopdevice::attach(&idsig, offset, size)?;
