vector: preserve typed error chains in lease pin/release (#12153)

vector: keep typed error chains in lease pin/release

Error::msg discarded the source chain — denied() could not downcast to
object_store::PermissionDenied, so try_pin surfaced the error instead
of degrading to an unleased query and read-only credentials broke
GetVectors/QueryVectors. Plain ? preserves the chain.
This commit is contained in:
Chris Lu authored and GitHub committed 2026-10-28 00:38:32 -07:00
1 parent a2863bf83b
commit 81879fba7b
1 file changed
+2 -3
@@ -67,8 +67,7 @@ pub async fn pin(dataset: &Dataset) -> Result<Lease> {
dataset
.tags()
.create(&tag, Ref::Version(None, Some(version)))
.await
.map_err(anyhow::Error::msg)?;
.await?;
// A cleanup that listed tags before this create can still reclaim the
// version; fail the read now rather than mid-query.
if dataset.checkout_version(version).await.is_err() {
@@ -109,7 +108,7 @@ fn denied(err: &anyhow::Error) -> bool {
}
async fn release(dataset: &Dataset, tag: &str) -> Result<()> {
dataset.tags().delete(tag).await.map_err(anyhow::Error::msg)
Ok(dataset.tags().delete(tag).await?)
}
fn untrack(tag: &str) {