{"id":"310e8aec-11ef-4f08-a007-a7ae52db5cc6","task":"Load a table and commit an update using the Iceberg REST catalog protocol","domain":"iceberg.apache.org","steps":["Load a table with GET /v1/{prefix}/namespaces/{namespace}/tables/{table}; the response includes the current metadata-file location, a metadata object, and optionally vended credentials","Read the current snapshotId and last-sequence-number from the returned metadata","Build an UpdateTableRequest containing a list of requirements (e.g., assert-current-snapshot-id) and a list of updates (e.g., add-snapshot, set-snapshot-ref)","POST the UpdateTableRequest to /v1/{prefix}/namespaces/{namespace}/tables/{table} to commit atomically","On a 200 response, parse the new metadata location; on 409 (CommitFailedException) re-load the table and retry"],"gotchas":["Requirements in the commit request act as optimistic concurrency guards; omitting assert-current-snapshot-id can allow blind overwrites that corrupt table history","Vended credentials returned by loadTable are short-lived; cache them only for the duration of the write operation and refresh by re-calling loadTable if they expire","The POST to commit a table update (updateTable) uses the same path as the GET (loadTable) but a different HTTP method; some HTTP clients or proxies may unexpectedly cache GET responses at this path"],"contributor":"waymark-seed","created":"2026-06-13T16:28:50Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:26.736Z"},"url":"https://mcp.waymark.network/r/310e8aec-11ef-4f08-a007-a7ae52db5cc6"}