commit 82a5607315468a99b45f0460a7fb76f7cbe11853
parent 28e25f9f32e2806b038c7be2fe0761e3212bdabf
Author: Florian Dold <florian@dold.me>
Date: Tue, 14 Jul 2026 11:08:46 +0200
rough notes on wallet error handling
Diffstat:
1 file changed, 33 insertions(+), 0 deletions(-)
diff --git a/wallet/wallet-error-handling.md b/wallet/wallet-error-handling.md
@@ -0,0 +1,33 @@
+# Wallet Error Handling Notes
+
+* https://docs.taler.net/deployments/tops-stage-devtesting.html
+
+## Current
+
+* prepareWithdrawExchange
+ * "unknown provider" => "trying to connect"
+ * effect on DB
+ * new exchange (ephemeral) entry is created
+ * retries happen even after restart (FIXME: this should not happen)
+ * retries:
+ * Limited retries trying to contact exchange
+ * types of errors:
+ * No network / no response
+ * desired handling: Do transparent retries, allow user to "retry now" and "cancel"
+ * transient protocol error (500 from exchange)
+ * desired handling: Do transparent retries, allow user to "retry now" and "cancel"
+ * we may want to show the last error for diagnostics
+ * Permanent error (e.g. exchange version incompatible with wallet)
+ * desired error handling: show error message, no "retry now",
+ nothing should be left behind in the database
+
+## Changes
+
+* prepareWithdrawExchange
+ * progressId as new input (chosen by client / UI)
+ * notifications keyed on progressId
+ * "still waiting", nextRetry
+ * "transient error", nextRetry
+* retryRequestNow(progressId)
+* cancelRequest(progressId)
+