Skip to content

feat: add QUOTE_RATE_UNAVAILABLE outgoing transaction failure reason - #846

Closed
ls-bolt[bot] wants to merge 1 commit into
mainfrom
08-19-quote-rate-unavailable
Closed

feat: add QUOTE_RATE_UNAVAILABLE outgoing transaction failure reason#846
ls-bolt[bot] wants to merge 1 commit into
mainfrom
08-19-quote-rate-unavailable

Conversation

@ls-bolt

@ls-bolt ls-bolt Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

This PR has been claimed. The active PR is now #847.

Summary

  • Adds QUOTE_RATE_UNAVAILABLE to OutgoingTransactionFailureReason, for a quote whose exchange rate was refused at execution time
  • Today that outcome is reported as QUOTE_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 faster
  • Documents the recovery in the quote-system guide alongside the existing QUOTE_EXPIRED example: identical (create a new quote), so callers can handle both together

Changes: 4 files

  • openapi/components/schemas/transactions/OutgoingTransactionFailureReason.yaml — new enum value + description-table row
  • openapi.yaml, mintlify/openapi.yaml — rebundled (npm run build:openapi)
  • mintlify/platform-overview/core-concepts/quote-system.mdx — error-handling example covers both codes

Test plan

  • make lint-openapi — "Woohoo! Your API description is valid. 🎉"
  • Adding an enum value is additive, but a caller switching exhaustively on failure reasons will see a new variant — flagging for the openapi-breaking-changes check rather than working around it

Requested by @jklein24

@vercel

vercel Bot commented Aug 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated (UTC)
grid-flow-builder Ignored Ignored Preview Aug 19, 2026 6:24pm
grid-wallet-demo Ignored Ignored Preview Aug 19, 2026 6:24pm

Request Review

@ls-bolt ls-bolt Bot added the bolt label Aug 19, 2026
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.
@ls-bolt
ls-bolt Bot force-pushed the 08-19-quote-rate-unavailable branch from f0252e6 to c10f85b Compare August 19, 2026 18:24
@github-actions github-actions Bot added the breaking-change Introduces a breaking change to the OpenAPI spec label Aug 19, 2026
@mintlify

mintlify Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
Grid 🟢 Ready View Preview Aug 19, 2026, 6:25 PM

Copy link
Copy Markdown

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions github-actions Bot removed the breaking-change Introduces a breaking change to the OpenAPI spec label Aug 19, 2026
@github-actions

github-actions Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

✱ Stainless preview builds for grid

This PR will update the grid SDKs with the following commit messages.

cli

chore(internal): regenerate SDK with no functional changes

go

feat(api): add QUOTE_RATE_UNAVAILABLE failure reason to outgoing transactions

kotlin

feat(api): add QUOTE_RATE_UNAVAILABLE failure reason to OutgoingTransaction

openapi

feat(api): add QUOTE_RATE_UNAVAILABLE to quote failure reasons enum

php

feat(api): add QUOTE_RATE_UNAVAILABLE value to FailureReason enum

python

feat(api): add QUOTE_RATE_UNAVAILABLE to failure_reason in outgoing_transaction

ruby

feat(api): add QUOTE_RATE_UNAVAILABLE to OutgoingTransaction FailureReason enum

typescript

feat(api): add QUOTE_RATE_UNAVAILABLE failure reason to OutgoingTransaction

Edit this comment to update them. They will appear in their respective SDK's changelogs.

grid-typescript studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ❗test ✅

npm install https://pkg.stainless.com/s/grid-typescript/aaf6c5fdd71b4372d02cafcae875d400a423097c/dist.tar.gz
grid-openapi studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️

grid-ruby studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ✅test ✅

grid-go studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ❗test ❗

go get github.com/stainless-sdks/grid-go@a9970aba620616242eecdbe06cd6eec8e7fb84e0
grid-kotlin studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️build ✅lint ✅test ❗

grid-python studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ❗test ❗

pip install https://pkg.stainless.com/s/grid-python/398fcf530c4e63f8b82e237cfca191e7ad62f5ee/grid-0.0.1-py3-none-any.whl
grid-php studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅lint ✅test ✅

grid-cli studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️build ❗lint ❗test ❗


This comment is auto-generated by GitHub Actions and is automatically kept up to date as you push.
If you push custom code to the preview branch, re-run this workflow to update the comment.
Last updated: 2026-08-19 18:32:20 UTC

@jklein24 jklein24 closed this Aug 19, 2026
jklein24 added a commit that referenced this pull request Aug 20, 2026
…847)

## Summary

- Adds `QUOTE_RATE_UNAVAILABLE` to `OutgoingTransactionFailureReason`,
for a quote whose exchange rate was refused at execution time
- Today that outcome is reported as `QUOTE_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 faster
- Documents the recovery in the quote-system guide alongside the
existing `QUOTE_EXPIRED` example: identical (create a new quote), so
callers can handle both together

## Changes: 4 files

-
`openapi/components/schemas/transactions/OutgoingTransactionFailureReason.yaml`
— new enum value + description-table row
- `openapi.yaml`, `mintlify/openapi.yaml` — rebundled (`npm run
build:openapi`)
- `mintlify/platform-overview/core-concepts/quote-system.mdx` —
error-handling example covers both codes

## Test plan

- `make lint-openapi` — "Woohoo! Your API description is valid. 🎉"
- Adding an enum value is additive, but a caller switching exhaustively
on failure reasons will see a new variant — flagging for the
`openapi-breaking-changes` check rather than working around it

Requested by @jklein24

Original PR: #846
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants