lilydjwg/nvchecker

HTTP 599 Error

kemelzaidan opened this issue · 4 comments

I installed nvchecker using pipx on Manjaro (with fish shell) and when trying to use it, I'm having the following error:

unexpected error happened error=HTTP 599: error setting certificate verify locations:
      CAfile: /etc/pki/tls/certs/ca-bundle.crt
      CApath: none
    Traceback (most recent call last):
      File "/home/kemel/.local/pipx/venvs/nvchecker/lib/python3.11/site-packages/nvchecker/util.py", line 311, in run_one
        version = await self.func(
                  ^^^^^^^^^^^^^^^^
      File "/home/kemel/.local/pipx/venvs/nvchecker/lib/python3.11/site-packages/nvchecker_source/github.py", line 39, in get_version
        return await get_version_real(name, conf, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/kemel/.local/pipx/venvs/nvchecker/lib/python3.11/site-packages/nvchecker_source/github.py", line 204, in get_version_real
        data = await cache.get_json(url, headers = headers)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/kemel/.local/pipx/venvs/nvchecker/lib/python3.11/site-packages/nvchecker/util.py", line 223, in get_json
        return await self.get(
               ^^^^^^^^^^^^^^^
      File "/home/kemel/.local/pipx/venvs/nvchecker/lib/python3.11/site-packages/nvchecker/util.py", line 250, in get
        r = await fu
            ^^^^^^^^
      File "/home/kemel/.local/pipx/venvs/nvchecker/lib/python3.11/site-packages/nvchecker/util.py", line 211, in _get_json
        res = await session.get(url, headers=dict(headers))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/kemel/.local/pipx/venvs/nvchecker/lib/python3.11/site-packages/nvchecker/httpclient/base.py", line 49, in get
        return await self.request(
               ^^^^^^^^^^^^^^^^^^^
      File "/home/kemel/.local/pipx/venvs/nvchecker/lib/python3.11/site-packages/nvchecker/httpclient/base.py", line 79, in request
        return await self.request_impl(
               ^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/kemel/.local/pipx/venvs/nvchecker/lib/python3.11/site-packages/nvchecker/httpclient/tornado_httpclient.py", line 83, in request_impl
        res = await AsyncHTTPClient().fetch(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    tornado.curl_httpclient.CurlError: HTTP 599: error setting certificate verify locations:
      CAfile: /etc/pki/tls/certs/ca-bundle.crt
      CApath: none

I believe the certification file it wants is actually in /etc/ssl/certs/ca-bundle.crt and not in /etc/pki/tls/certs/ca-bundle.crt. I looked for a way to configure the certification location in the documentation, but could not find it. Of course I can turn the certification verification off or create a symbolic link to the right location, but I thought I should report this here.

This is an library issue: you installed the binary pycurl package from PyPI and hit this pycurl/pycurl#834. This is why the idea of universal binaries sucks.

I'm going to use httpx by default as soon as they release a 1.0 version.

BTW, why don't you just pacman -S nvchecker?

As a workaround, you can uninstall nvchecker with pipx then reinstall with:

pipx install nvchecker --pip-args "--no-binary pycurl"

note: in my venv, it appears a simple pip uninstall pycurl was sufficient as well :) (--pip-args was not available)

I don't remember how, but I was eventually able to install it. That's why I'm closing this issue.

Thank you all for the help anyway.