diff --git a/src/_zkapauthorizer/controller.py b/src/_zkapauthorizer/controller.py index 3303892f441a7c5b357ad587cad579a03ad1a83b..decee7ab125285ba3ce3aca8d10e88eb02c19e3e 100644 --- a/src/_zkapauthorizer/controller.py +++ b/src/_zkapauthorizer/controller.py @@ -181,6 +181,8 @@ class DummyRedeemer(object): @implementer(IRedeemer) @attr.s class RistrettoRedeemer(object): + _log = Logger() + _treq = attr.ib() _api_root = attr.ib(validator=attr.validators.instance_of(URL)) @@ -217,7 +219,12 @@ class RistrettoRedeemer(object): ), }), ) - result = yield json_content(response) + try: + result = yield json_content(response) + except ValueError: + self._log.failure("Parsing redeem response failed", response=response) + raise TransientRedemptionError() + marshaled_signed_tokens = result[u"signatures"] marshaled_proof = result[u"proof"] marshaled_public_key = result[u"public-key"]