Jupyterhub-idle-culler SSL certificate problem

Running jupyterhub-idle-culler on the same server as Jupyterhub with TLS set up. If I use the full URL with https the following error appears:

tornado.curl_httpclient.CurlError: HTTP 599: SSL certificate problem: unable to get local issuer certificate

If I use `http://localhost’ then it says:

tornado.curl_httpclient.CurlError: HTTP 599: Empty reply from server

Certificate works with everything else, including the browser installed on the server.

Have anyone encountered this problem before? Googling around I found suggestions to overwrite Tornado’s AsyncHTTPClient, which hardly seems like an ideal solution.

1 Like

Hi @Vinci_Chow,

Could you solve this problem?

Have you guys find the solution? I get a similar problem.

When I ran JupyterHub by helm, I failed to cull inactive user by set config yaml.

cull:
  enabled: true
  timeout: 300 
  every: 60

The hub pod gives an error as below.

[W 2023-11-09 01:12:59.125 JupyterHub log:191] 403 GET /hub/api/users?state=[secret] (jupyterhub-idle-culler@127.0.0.1) 6.40ms
[E 231109 01:12:59 ioloop:923] Exception in callback functools.partial(<function cull_idle at 0x7f8cc77975e0>, url='http://localhost:8081/hub/api', api_token='1b66576c8caa43a9ae64cb419f9bf1f0', inactive_limit=3600, cull_users=False, remove_named_servers=False, max_age=0, concurrency=10, ssl_enabled=False, internal_certs_location='internal-ssl', cull_admin_users=True, api_page_size=0)
    Traceback (most recent call last):
      File "/usr/local/lib/python3.9/site-packages/tornado/ioloop.py", line 921, in _run
        await val
      File "/usr/local/lib/python3.9/site-packages/jupyterhub_idle_culler/__init__.py", line 422, in cull_idle
        async for user in fetch_paginated(req):
      File "/usr/local/lib/python3.9/site-packages/jupyterhub_idle_culler/__init__.py", line 135, in fetch_paginated
        response = await resp_future
      File "/usr/local/lib/python3.9/site-packages/jupyterhub_idle_culler/__init__.py", line 117, in fetch
        return await client.fetch(req)
    tornado.httpclient.HTTPClientError: HTTP 403: Forbidden

Hope to get some advice. For more details, please visit this stackoverflow question.