diff --git a/lnbits/wallets/lndrest.py b/lnbits/wallets/lndrest.py index ee9b1d6af8..7ae68be832 100644 --- a/lnbits/wallets/lndrest.py +++ b/lnbits/wallets/lndrest.py @@ -139,14 +139,22 @@ async def pay_invoice(self, bolt11: str, fee_limit_msat: int) -> PaymentResponse lnrpcFeeLimit = dict() lnrpcFeeLimit["fixed_msat"] = f"{fee_limit_msat}" - r = await self.client.post( - url="/v1/channels/transactions", - json={"payment_request": bolt11, "fee_limit": lnrpcFeeLimit}, - timeout=None, - ) + try: + r = await self.client.post( + url="/v1/channels/transactions", + json={"payment_request": bolt11, "fee_limit": lnrpcFeeLimit}, + timeout=None, + ) + r.raise_for_status() + except Exception as exc: + logger.warning(f"LndRestWallet pay_invoice POST error: {exc}.") + return PaymentResponse(None, None, None, None, str(exc)) + + data = r.json() - if r.is_error or r.json().get("payment_error"): + if data.get("payment_error"): error_message = r.json().get("payment_error") or r.text + logger.warning(f"LndRestWallet pay_invoice payment_error: {error_message}.") return PaymentResponse(False, None, None, None, error_message) data = r.json()