diff --git a/crates/iceberg/src/io/object_cache.rs b/crates/iceberg/src/io/object_cache.rs index 88e2d0e2d5..ede637d394 100644 --- a/crates/iceberg/src/io/object_cache.rs +++ b/crates/iceberg/src/io/object_cache.rs @@ -141,7 +141,15 @@ impl ObjectCache { .entry_by_ref(&key) .or_try_insert_with(self.fetch_and_parse_manifest_list(snapshot, table_metadata)) .await - .map_err(|err| Error::new(ErrorKind::Unexpected, err.as_ref().message()))? + .map_err(|err| { + Arc::try_unwrap(err).unwrap_or_else(|err| { + Error::new( + ErrorKind::Unexpected, + "Failed to load manifest list in cache", + ) + .with_source(err) + }) + })? .into_value(); match cache_entry {