Group of 2 You'll notice
Artifact publish failures now get a distinct contract_rollout error code and generic 429 responses are classified as rate-limited
What
Artifact publishing error handling gained two refinements:
- Generic 429 ("too many requests") responses, beyond the existing capacity-cap case, are now classified as
rate_limitedand shown with a retry-after message - A new
contract_rollouterror code is added for 422 responses whose message matches a "is newer than the preferred" pattern, but only when the request declaredcontract:'latest'(thelatestContractflag) and there's no already-known contract pin. This is treated as distinct from the existingcontract_echo_rejectedcase
Why
These give users and logs a more accurate reason when a publish fails: a genuine rate limit versus a contract version that's being rolled out ahead of what the client expected, rather than lumping both into generic or misleading error codes.