feat: add QUOTE_RATE_UNAVAILABLE outgoing transaction failure reason - #847
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
✱ Stainless preview builds for gridThis PR will update the cli go kotlin openapi php python ruby typescript
|
Greptile SummaryQUOTE RATE UNAVAILABLE — forge the failure contract in steel. This PR distinguishes execution-time exchange-rate refusal from genuine quote expiry and documents the shared create-a-new-quote recovery.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| openapi/components/schemas/transactions/OutgoingTransactionFailureReason.yaml | Adds the outgoing QUOTE_RATE_UNAVAILABLE enum value and clearly documents its meaning and recovery. |
| openapi.yaml | Keeps the committed root OpenAPI bundle synchronized with the modular source schema. |
| mintlify/openapi.yaml | Keeps the Mintlify OpenAPI bundle synchronized with the source and root bundle. |
| mintlify/platform-overview/core-concepts/quote-system.mdx | Documents the distinction between rate refusal and expiry while prescribing the same fresh-quote recovery. |
| mintlify/platform-overview/core-concepts/transaction-lifecycle.mdx | Adds the new outgoing failure reason to the lifecycle recovery table. |
| mintlify/ramps/conversion-flows/fiat-crypto-conversion.mdx | Updates both recovery snippets to receive the integration’s original quote request explicitly. |
| mintlify/snippets/error-handling.mdx | Adds the new failure reason to the outgoing reference list and user-facing message mapping. |
Reviews (6): Last reviewed commit: "feat: add QUOTE_RATE_UNAVAILABLE outgoin..." | Re-trigger Greptile
c10f85b to
61ef927
Compare
|
⚡ Revision log — updated in place, latest first. Revision 2
Earlier revisions (1)Revision 1
|
|
The revision covers everything. Both issues from my original comments are addressed:
No further action needed from my side. LGTM. |
|
@greptile review |
61ef927 to
4b1ef29
Compare
|
@greptile review |
4b1ef29 to
20631e2
Compare
|
@greptile review |
20631e2 to
f6a6734
Compare
|
@greptile review |
A refused exchange rate is a distinct outcome from a quote whose expiry window elapsed: nothing was exchanged in either case, but only one is about timing. Callers currently see QUOTE_EXPIRED for both and cannot tell them apart.
f6a6734 to
5f677f5
Compare
|
@greptile review |
|
Revision 2 fully resolves what my summary flagged. The current
My "not yet safe to merge" note in the summary was written before this push and is no longer accurate. LGTM. |

Summary
QUOTE_RATE_UNAVAILABLEtoOutgoingTransactionFailureReason, for a quote whose exchange rate was refused at execution timeQUOTE_EXPIRED, which is indistinguishable from a quote whose expiry window genuinely elapsed. Both mean nothing was exchanged, but only one is about timing, and only one is fixed by executing fasterQUOTE_EXPIREDexample: identical (create a new quote), so callers can handle both togetherChanges: 4 files
openapi/components/schemas/transactions/OutgoingTransactionFailureReason.yaml— new enum value + description-table rowopenapi.yaml,mintlify/openapi.yaml— rebundled (npm run build:openapi)mintlify/platform-overview/core-concepts/quote-system.mdx— error-handling example covers both codesTest plan
make lint-openapi— "Woohoo! Your API description is valid. 🎉"openapi-breaking-changescheck rather than working around itRequested by @jklein24
Original PR: #846