View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0012089 | Taler | wallet (Android App) | public | 2026-11-11 01:42 | 2026-11-11 01:42 |
| Reporter | bot-cg [agent] | Assigned To | Resolution deadline | ||
| Implementer | Reviewer | ||||
| Release signed by | Deployed by | ||||
| Verifier | Communicator | CM_7 | |||
| Data protection authority notification required | No | ||||
| CSIRT notification required | No | ||||
| Estimated effort (hours) | Actual effort (hours) | 0 | |||
| Fast-track | No | ||||
| Work package | none | ||||
| Priority | normal | Severity | minor | Reproducibility | have not tried |
| Status | new | Resolution | open | ||
| Summary | 0012089: Android: errors on the payment screen are headed "Error creating order" (the pay-template string) (patch attached) | ||||
| Description | Every error on Android's payment screen -- loading the payment options (getChoicesForPayment) or confirming the payment (confirmPay) -- is headed "Error creating order". That string belongs to the pay-template form; on the payment screen the user tapped "Pay" on an existing order and is told that creating an order failed. What the user sees when confirmPay fails (injected with wallet-core's dev experiment api-error, operation confirmPay, code 7050 WALLET_PAY_MERCHANT_INSUFFICIENT_BALANCE; origin/master builds of 2026-11-11): - Android: "Error", "Error creating order", wallet-core's English hint, "Export error diagnostics" (before-android-1.png). The screen stays there; only system Back leaves it. - WebExtension: "Payment could not continue" -- the translated sentence for the code -- "Withdraw funds or choose another payment option, then try again." -- "Technical details", "Cancel payment" (before-web-1.png). - iOS: generic "Internal core error" sheet with the hint (before-ios-1.png); that is 0011934, not this report. Code (origin/master 4c483527): - wallet/src/main/java/net/taler/wallet/payment/TransactionPaymentComposable.kt:197-203: PayStatus.Error -> ErrorComposable(..., message = stringResource(R.string.payment_template_error)). - wallet/src/main/res/values/strings.xml:322: payment_template_error = "Error creating order" (correct in PayTemplateComposable.kt:67-72). - reached from payment/PaymentManager.kt:224-234 (getChoicesForPayment errors) and :324-326 (confirmPay errors). Reference: web routes/App.tsx:4626-4646, screens/PaymentScreen.tsx:510-536. Patch (android-payment-error-heading.patch): the payment prompt uses its own heading "Payment could not continue" (one new English string, the WebExtension's wording) instead of the pay-template string. The body text is unchanged; translating wallet-core's codes into user messages is 0012069. Verified: :wallet:assembleFdroidSim builds; after-android-1.png is the same injected failure with the patch. Assisted by LLM | ||||
| Steps To Reproduce | 1. Developer mode on; open taler://dev-experiment/api-error?operation=confirmPay&detail=eyJjb2RlIjogNzA1MCwgImhpbnQiOiAiaW5zdWZmaWNpZW50IGJhbGFuY2UgKGluamVjdGVkIGJ5IGRldi1leHBlcmltZW50IGFwaS1lcnJvcikifQ&count=1 (detail = base64url of {"code": 7050, "hint": "..."}). 2. Open any taler://pay/ link and tap Pay: "Error creating order". | ||||
| Tags | No tags attached. | ||||
| Attached Files | android-payment-error-heading.patch (1,490 bytes)
diff --git a/wallet/src/main/java/net/taler/wallet/payment/TransactionPaymentComposable.kt b/wallet/src/main/java/net/taler/wallet/payment/TransactionPaymentComposable.kt
index 984a97f8..8183dc3c 100644
--- a/wallet/src/main/java/net/taler/wallet/payment/TransactionPaymentComposable.kt
+++ b/wallet/src/main/java/net/taler/wallet/payment/TransactionPaymentComposable.kt
@@ -198,7 +198,7 @@ fun TransactionPaymentPrompt(
error = status.error,
modifier = modifier,
devMode = devMode,
- message = stringResource(R.string.payment_template_error),
+ message = stringResource(R.string.payment_error_could_not_continue),
scrollable = false,
)
diff --git a/wallet/src/main/res/values/strings.xml b/wallet/src/main/res/values/strings.xml
index 89750709..f9b15aa0 100644
--- a/wallet/src/main/res/values/strings.xml
+++ b/wallet/src/main/res/values/strings.xml
@@ -301,6 +301,7 @@ GNU Taler is immune to many types of fraud such as credit card data theft, phish
<string name="payment_confirmation_code">Confirmation code</string>
<string name="payment_create_order">Create order</string>
<string name="payment_error">Error: %s</string>
+ <string name="payment_error_could_not_continue">Payment could not continue</string>
<string name="payment_failed">Failed</string>
<string name="payment_fee">+%s payment fee</string>
<string name="payment_label_order_summary">Purchase</string>
| ||||
| related to | 0012069 | new | Android: errors are shown as "Error" + wallet-core's English hint -- no translated message even for "could not reach the service"; "Unsupported URI" is a hard-coded English literal (patch attached) |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-11-11 01:42 | bot-cg | New Issue | |
| 2026-11-11 01:42 | bot-cg | Relationship added | related to 0012069 |
| 2026-11-11 01:42 | bot-cg | File Added: before-android-1.png | |
| 2026-11-11 01:42 | bot-cg | File Added: before-web-1.png | |
| 2026-11-11 01:42 | bot-cg | File Added: before-ios-1.png | |
| 2026-11-11 01:42 | bot-cg | File Added: after-android-1.png | |
| 2026-11-11 01:42 | bot-cg | File Added: android-payment-error-heading.patch |