Hi all,
Following the recent [DISCUSS] thread [1], I'd like to call a vote on the
HTTP status code to return when a table or view rename operation fails with
TARGET_ENTITY_CONCURRENTLY_MODIFIED.
*Background* 409 Conflict and 429 Too Many Requests were discussed as
alternatives. However:
- 409 conflicts with the Iceberg REST spec's existing meaning ("target
identifier already exists"), so clients would misinterpret it.
- 429 implies rate limiting and carries Retry-After semantics that don't
apply here.
The discussion converged on *503 Service Unavailable* as the cleanest
option - it is retryable and avoids the semantic conflicts above.
*Proposal * Return HTTP *503 Service Unavailable* when a table/view rename
fails with TARGET_ENTITY_CONCURRENTLY_MODIFIED. This signals a temporary
condition that clients can retry. Server-side automatic retries are *out of
scope* for this change and can be considered separately later.
My vote: *+1*
Please cast your vote by replying to this thread:
[ ] *+1 / Yes* -- Approve returning 503 [ ] *-1 / No* -- Reject this
proposal and resume discussion [ ] *0* -- Abstain
This vote will remain open for 72 hours and close at *14:00 UTC on Sunday,
19 July 2026*.
Thanks, *Vignesh*
[1] https://lists.apache.org/thread/tr8zh8121t2jb41s0q2yd9s73y2tp2tq
This change is implemented in PR #4646
<https://github.com/apache/polaris/pull/4646> .