hopla icon indicating copy to clipboard operation
hopla copied to clipboard

Add extra error checking for JSON-decoding

Open melvio opened this issue 2 years ago • 0 comments

After running hopla buy enchanged-armoire approx. 3000 times, I ran into the following error:

Traceback (most recent call last):
  File "/home/m/.local/bin/hopla", line 8, in <module>
    sys.exit(setup_hopla_application())
  File "/home/m/.local/lib/python3.8/site-packages/hopla/__init__.py", line 29, in setup_hopla_application
    kickstart_hopla()
  File "/home/m/.local/lib/python3.8/site-packages/hopla/kickstart.py", line 160, in kickstart_hopla
    hopla()
  File "/home/m/.local/lib/python3.8/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "/home/m/.local/lib/python3.8/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/home/m/.local/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/m/.local/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/m/.local/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/m/.local/lib/python3.8/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "/home/m/.local/lib/python3.8/site-packages/hopla/cli/buy/enchanted_armoire.py", line 111, in enchanted_armoire
    dispatcher.execute_all_requests()
  File "/home/m/.local/lib/python3.8/site-packages/hopla/hoplalib/throttling.py", line 48, in execute_all_requests
    _ = api_request()
  File "/home/m/.local/lib/python3.8/site-packages/hopla/cli/buy/enchanted_armoire.py", line 48, in buy_from_enchanted_armoire_once
    buy_data: dict = buy_request.post_buy_request_get_data_or_exit()
  File "/home/m/.local/lib/python3.8/site-packages/hopla/cli/buy/enchanted_armoire.py", line 41, in post_buy_request_get_data_or_exit
    return get_data_or_exit(response)["armoire"]
  File "/home/m/.local/lib/python3.8/site-packages/hopla/hoplalib/requests_helper.py", line 23, in get_data_or_exit
    response_json = api_response.json()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 897, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib/python3/dist-packages/simplejson/__init__.py", line 518, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
    obj, end = self.raw_decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
    return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 2 column 1 (char 1)

melvio avatar Oct 04 '21 12:10 melvio