Today, when requests fail due to transient conditions (downstream timeouts, rate-limit blocks), callers have no machine-readable signal for how long to wait before retrying. Messages like "Resource exhausted; please wait a minute and try again" are human-readable but not actionable by SDKs or CI harnesses. This forces clients to use fixed sleep times or blind retry loops.
Note: the codebase already has error handling patterns that preserve meaningful messages for user-facing error codes (via IsUserError()). Sanitization to opaque "internal server error (UUID)" only applies to internal/non-user errors. Whether error messages are consistently useful across all code paths is a separate tech debt question.
The standard HTTP Retry-After header tells callers "this failed, but try again after N seconds." That's the missing piece.