Hello everyone,

When I was running the RCK against Lakekeeper, I noticed that RCK verifies not 
only the exception type but also the error message. RCK verifies the messages 
as they are written in the Java implementation, and since Lakekeeper uses 
iceberg-rust, we have different error messages [1] Java [2] Rust. However, the 
error messages are written differently in other clients as well [3] Python [4] 
Go.

This could become a broader compatibility issue as we see more REST 
implementations built on different language foundations.

Should we standardize the error messages across all implementations, make RCK 
more permissive by focusing only on exception types, or handle this at the REST 
server implementation level where each implementation adapts to match RCK 
expectations?

Are there other solutions I haven't considered?

- 
https://github.com/apache/iceberg/blob/fa80ba787af776f516e772f27bf746756de93b70/core/src/main/java/org/apache/iceberg/UpdateRequirement.java#L186
- 
https://github.com/apache/iceberg-rust/blob/e7160df4a0cb8f2f6ce12681053e8cb1a43b74e1/crates/iceberg/src/catalog/mod.rs#L711
- 
https://github.com/apache/iceberg-python/blob/main/pyiceberg/table/update/__init__.py#L801
- 
https://github.com/apache/iceberg-go/blob/b4babc8b919258be7b25f5cc295fc68a458f9559/table/requirements.go#L268

André Anastácio

Reply via email to