Skip to content

01a01eea - fix(buy): Confirm-Fehlertext von der API anzeigen - #923

Merged
TaprootFreak merged 13 commits into
stagingfrom
fix/buy-confirm-api-error-text
Aug 20, 2026
Merged

01a01eea - fix(buy): Confirm-Fehlertext von der API anzeigen#923
TaprootFreak merged 13 commits into
stagingfrom
fix/buy-confirm-api-error-text

Conversation

@TaprootFreak

@TaprootFreak TaprootFreak commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

EN:
API error text is shown as-is. The app no longer substitutes local copy for quote, confirm, sell, send, or KYC failures. Hardware and cancelled-signature messages stay local.

DE:
API-Fehlertexte werden unverändert angezeigt. Die App ersetzt sie bei Quote, Confirm, Sell, Send und KYC nicht mehr durch lokale Texte. Hardware- und Abbruch-Meldungen bleiben lokal.

Details

Confirm snackbar: BuyConfirmFailure.message from the API.

Quote 503 / unknown: BuyPaymentInfoFailure.message from the API; the info card no longer uses priceProviderUnavailable* / paymentInformationFailed*.

Sell 503 snackbar: state.message instead of priceProviderUnavailableTitle.

Send: API message is the sheet body when present; ARB remains only for BitBox/signature-cancelled.

KYC snackbars (email, nationality, personal data, link wallet, registration, 2FA, ident error): API message as-is.

Depends on the backend PR that returns user-facing message fields.

Die App hat HTTP 503 auf eine lokale Mail-Bestätigungs-Kopie gemappt.
Snackbar zeigt jetzt die API-message unverändert.
The unknown confirm-failure golden was removed, but the handbook mapping
and de/index.html still pointed at it. Confirm snackbars render the API
message as-is; the handbook copy now says that instead of local ARB text.
@TaprootFreak
TaprootFreak marked this pull request as ready for review August 20, 2026 15:23
@TaprootFreak

Copy link
Copy Markdown
Contributor Author

EN:
Ready after 2 review passes.
The buy-confirm snackbar shows the API error message as-is, and handbook slot 113 follows the primary-email golden.

DE:
Bereit nach 2 Review-Durchläufen.
Die Buy-Confirm-Snackbar zeigt die API-Fehlermeldung unverändert, und Handbook-Slot 113 folgt dem Primary-E-Mail-Golden.

Details

Pass 1: handbook mapping 113-buy-confirm-failed-unknown still pointed at the deleted golden. Fixed in fea1b0b7 by mapping slot 113 to buy_confirm_failed_primary_email_required.png and updating docs/handbook/de/index.html so the snackbar copy is the API message.

Pass 2: quality and logic reports complete with 0 remaining defects. Two quality notes were declined: (1) showing Exception.toString() when there is no API body is the contract, not a local business string; (2) “three possible error messages” in spec 38 refers to the three illustrated snackbar goldens.

Comments: no issue comments, reviews, review comments, or review threads.
Mergeable: MERGEABLE at fea1b0b7302c12e97e0acb5ee4cd39d30bc8d8b8.
CI at that head: Analyze & Test, Coverage Floor Gate, Visual Regression, BitBox quirks audit, Build handbook image + container smoke — all SUCCESS. Maestro handbook flows skipped (opt-in tier3:full label, not required).

@TaprootFreak
TaprootFreak marked this pull request as draft August 20, 2026 15:52
TaprootFreak and others added 6 commits August 20, 2026 17:56
Quote, sell, send, and KYC flows showed canned ARB strings for API
failures (503 price source, send 503/400/403, email mismatch, wrapped
KYC failures). The snackbar and info card now show the API message as-is.
Local copy remains only for hardware and user-cancelled signature.
Gas-funding failures now carry the API message. Confirm-mismatch stays a
local guard without a technical toString. Unknown quote error codes are
not shown as user copy.
Confirm 503 without a body message no longer invents English copy.
Registration submit surfaces ApiException.message instead of toString.
Unknown isValid=false codes are routing tokens, not API message text.
@TaprootFreak
TaprootFreak marked this pull request as ready for review August 20, 2026 16:24
@TaprootFreak
TaprootFreak marked this pull request as draft August 20, 2026 16:46
@TaprootFreak
TaprootFreak marked this pull request as ready for review August 20, 2026 16:46
@TaprootFreak
TaprootFreak marked this pull request as draft August 20, 2026 17:06
@TaprootFreak
TaprootFreak marked this pull request as ready for review August 20, 2026 17:08
@TaprootFreak
TaprootFreak marked this pull request as draft August 20, 2026 17:13
@TaprootFreak
TaprootFreak marked this pull request as ready for review August 20, 2026 17:14
@TaprootFreak
TaprootFreak marked this pull request as draft August 20, 2026 17:41
TaprootFreak and others added 2 commits August 20, 2026 19:41
Sell-Confirm, Pay, KYC, Support, Settings und Receipts zeigten
e.toString() oder ARB-Essays statt der API-message.
@TaprootFreak
TaprootFreak marked this pull request as ready for review August 20, 2026 17:43
Ohne Body-Text bleibt die Gas-Funding-Exception leer, die View fällt
auf die lokale Transfer-Kopie. Listen-messages werden wie fromJson gejoint.
@TaprootFreak

Copy link
Copy Markdown
Contributor Author

Ready for review — 2 review passes

API error message is now shown 1:1 across buy/sell/send/pay/KYC/support/settings/receipts. The app no longer invents business copy (e.toString() wrappers, ARB essays, 503→email). Local copy remains only for hardware, cancelled signature, form validation, and KYC routing titles.

Pass 1: send 503 without a body message still surfaced invented "Unknown error".
Pass 2: that path now keeps detail empty so the view falls back to the local transfer copy; list message values are joined like fromJson. Unused ARB keys (paymentInformationFailed as a test sentinel) left in place on purpose.

CI green on de834d65 (Analyze & Test, Coverage Floor Gate, Visual Regression). Mergeable. Please merge DFXswiss/backend#5104 first, then this PR.


Bereit zum Review — 2 Review-Durchläufe

API-message wird 1:1 in Buy/Sell/Send/Pay/KYC/Support/Settings/Receipts angezeigt. Die App erfindet keine Geschäfts-Fehlertexte mehr (e.toString()-Hüllen, ARB-Essays, 503→E-Mail). Lokal bleibt nur Hardware, abgebrochene Signatur, Formularvalidierung und KYC-Routing-Titel.

Durchlauf 1: Send-503 ohne Body-message zeigte noch erfundenes "Unknown error".
Durchlauf 2: dieser Pfad lässt detail leer, die View fällt auf die lokale Transfer-Kopie; Listen-message wird wie fromJson gejoint. Ungenutzte ARB-Keys (paymentInformationFailed als Test-Sentinel) bewusst belassen.

CI grün auf de834d65. Mergebar. Bitte zuerst DFXswiss/backend#5104 mergen, dann diesen PR.

@TaprootFreak
TaprootFreak merged commit 8b76006 into staging Aug 20, 2026
6 checks passed
@TaprootFreak
TaprootFreak deleted the fix/buy-confirm-api-error-text branch August 20, 2026 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant