From aed74434ebdcf5bd053224b2211f0711c27f6479 Mon Sep 17 00:00:00 2001 From: Shawn Chang Date: Wed, 18 Jun 2025 16:09:22 -0700 Subject: [PATCH 1/2] Add ErrorKind::CommitFailed --- crates/catalog/rest/src/catalog.rs | 2 +- crates/iceberg/src/error.rs | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/catalog/rest/src/catalog.rs b/crates/catalog/rest/src/catalog.rs index 3438cb29e1..5bf5ed8ab2 100644 --- a/crates/catalog/rest/src/catalog.rs +++ b/crates/catalog/rest/src/catalog.rs @@ -768,7 +768,7 @@ impl Catalog for RestCatalog { } StatusCode::CONFLICT => { return Err(Error::new( - ErrorKind::Unexpected, + ErrorKind::CommitFailed, "CommitFailedException, one or more requirements failed. The client may retry.", ) .with_retryable(true)); diff --git a/crates/iceberg/src/error.rs b/crates/iceberg/src/error.rs index e69de38575..57d65da241 100644 --- a/crates/iceberg/src/error.rs +++ b/crates/iceberg/src/error.rs @@ -60,6 +60,9 @@ pub enum ErrorKind { /// /// This error is returned when given iceberg feature is not supported. FeatureUnsupported, + + /// Commit failed due to outdated metadata + CommitFailed, } impl ErrorKind { @@ -80,6 +83,7 @@ impl From for &'static str { ErrorKind::NamespaceAlreadyExists => "NamespaceAlreadyExists", ErrorKind::NamespaceNotFound => "NamespaceNotFound", ErrorKind::PreconditionFailed => "PreconditionFailed", + ErrorKind::CommitFailed => "CommitFailed", } } } From 2979d568ed681605c7ffebb57a482f7c9d0a27bc Mon Sep 17 00:00:00 2001 From: Shawn Chang Date: Fri, 27 Jun 2025 14:28:16 -0700 Subject: [PATCH 2/2] Changed name to CatalogCommitConflicts --- crates/catalog/rest/src/catalog.rs | 4 ++-- crates/iceberg/src/error.rs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/catalog/rest/src/catalog.rs b/crates/catalog/rest/src/catalog.rs index 5bf5ed8ab2..4b5b489640 100644 --- a/crates/catalog/rest/src/catalog.rs +++ b/crates/catalog/rest/src/catalog.rs @@ -768,8 +768,8 @@ impl Catalog for RestCatalog { } StatusCode::CONFLICT => { return Err(Error::new( - ErrorKind::CommitFailed, - "CommitFailedException, one or more requirements failed. The client may retry.", + ErrorKind::CatalogCommitConflicts, + "CatalogCommitConflicts, one or more requirements failed. The client may retry.", ) .with_retryable(true)); } diff --git a/crates/iceberg/src/error.rs b/crates/iceberg/src/error.rs index 57d65da241..9f299fb6a9 100644 --- a/crates/iceberg/src/error.rs +++ b/crates/iceberg/src/error.rs @@ -61,8 +61,8 @@ pub enum ErrorKind { /// This error is returned when given iceberg feature is not supported. FeatureUnsupported, - /// Commit failed due to outdated metadata - CommitFailed, + /// Catalog commit failed due to outdated metadata + CatalogCommitConflicts, } impl ErrorKind { @@ -83,7 +83,7 @@ impl From for &'static str { ErrorKind::NamespaceAlreadyExists => "NamespaceAlreadyExists", ErrorKind::NamespaceNotFound => "NamespaceNotFound", ErrorKind::PreconditionFailed => "PreconditionFailed", - ErrorKind::CommitFailed => "CommitFailed", + ErrorKind::CatalogCommitConflicts => "CatalogCommitConflicts", } } }