--- a/packages/taler-wallet-core/src/pay-peer-push-debit.ts 2026-11-11 04:14:57.378485375 +0100 +++ b/packages/taler-wallet-core/src/pay-peer-push-debit.ts 2026-11-11 04:14:57.382485348 +0100 @@ -1475,6 +1475,10 @@ const instructedAmount = Amounts.parseOrThrow( req.partialContractTerms.amount, ); + // Same guard as checkPeerPushDebitV2: without it a zero amount reaches + // selectPeerCoinsInTx, which throws a plain Error and surfaces as + // WALLET_UNEXPECTED_EXCEPTION with a stack trace. + requirePositivePeerPushDebitAmount(instructedAmount); const currency = Amounts.currencyOf(instructedAmount); const requestedExpiration = req.partialContractTerms.purse_expiration;