Error ==
404 : Not Found
You are requesting a page that does not exist!
Have been struggling to make it work.
Wondering
(a.) Is there a page OR a list of Compatible versions of all this software/technologies to make it work.
(b.) Is there a page which lists out the details to make it work and the config file/details and the parameters
(c.) Is there a YouTube/other streams video which shows the Config/Settings of JupyterHub?
(d.) Am getting a 404 Error when am trying to logon to a user spawned page post logon to JupyterHub.But the admin page is working perfectly fine.
User Page URL == http://##.###.###.##:8579/user/id1234/lab?
Admin Page URL ==http://##.###.###.##:8579/hub/admin
~~~~<jupyterhub_config.py>~~~~
import os
import shutil
c = get_config() #noqa
c.JupyterHub.hub_ip = ‘##.##.##.##’
c.JupyterHub.bind_url = ‘http://##.##.##.##:8579’
c.Spawner.ip = ‘##.##.##.##’
c.JupyterHub.port = 8579
c.JupyterHub.hub_port = 8580
c.JupyterHub.authenticator_class = ‘jupyterhub.auth.PAMAuthenticator’
c.Authenticator.allow_all = True
c.Authenticator.admin_users = {‘id1234’}
c.Spawner.environment = {
“JUPYTERLAB_DIR”: “/usr/local/share/jupyter/lab”,
“JUPYTER_PATH”: “/usr/local/share/jupyter”,
“JUPYTER_CONFIG_PATH”: “/usr/local/etc/jupyter”,
“JUPYTER_CONFIG_DIR”: “/usr/local/etc/jupyter”,
}
c.Spawner.env_keep = [
“PATH”,
“PYTHONPATH”,
“JUPYTERLAB_DIR”,
“JUPYTER_PATH”,
“JUPYTER_CONFIG_PATH”,
“JUPYTER_CONFIG_DIR”,
]
c.Spawner.cmd = [“jupyterhub-singleuser”]
c.Spawner.default_url = ‘/lab’
c.ServerApp.terminals_enabled = True
c.Application.log_handler = ‘file’
c.Application.log_level = ‘DEBUG’
c.JupyterHub.log_level = ‘DEBUG’
c.Spawner.debug = True
c.ConfigurableHTTPProxy.debug = True
~~~~<jupyterhub_config.py>~~~~
LOG file . . .
nohup: ignoring input
[W 2025-11-12 19:21:49.151 JupyterHub configurable:214] Config option log_handler not recognized by JupyterHub. Did you mean one of: extra_handlers, extra_log_handlers, logo_file?
[W 2025-11-12 19:21:49.155 JupyterHub app:724] Both bind_url and ip/port/base_url have been configured. please use just one or the other.
[I 2025-11-12 19:21:49.155 JupyterHub app:3359] Running JupyterHub version 5.4.2
[I 2025-11-12 19:21:49.155 JupyterHub app:8579] Using Authenticator: jupyterhub.auth.PAMAuthenticator-5.4.2
[I 2025-11-12 19:21:49.155 JupyterHub app:8579] Using Spawner: jupyterhub.spawner.LocalProcessSpawner-5.4.2
[I 2025-11-12 19:21:49.155 JupyterHub app:8579] Using Proxy: jupyterhub.proxy.ConfigurableHTTPProxy-5.4.2
/usr/local/lib/python3.13/site-packages/jupyter_events/schema.py:68: JupyterEventsVersionWarning: The version property of an event schema must be a string. It has been type coerced, but in a future version of this library, it will fail to validate. Please update schema: https://schema.jupyter.org/jupyterhub/events/server-action
validate_schema(_schema)
[D 2025-11-12 19:21:49.160 JupyterHub app:1875] Generating new cookie_secret
[I 2025-11-12 19:21:49.160 JupyterHub app:1880] Writing cookie_secret to /etc/jupyterhub/jupyterhub_cookie_secret
[D 2025-11-12 19:21:49.160 JupyterHub app:2010] Connecting to db: sqlite:///jupyterhub.sqlite
[D 2025-11-12 19:21:49.174 JupyterHub orm:1477] Stamping empty database with alembic revision 4621fec11365
[I 2025-11-12 19:21:49.175 alembic.runtime.migration migration:211] Context impl SQLiteImpl.
[I 2025-11-12 19:21:49.175 alembic.runtime.migration migration:214] Will assume non-transactional DDL.
[I 2025-11-12 19:21:49.186 alembic.runtime.migration migration:622] Running stamp_revision → 4621fec11365
[D 2025-11-12 19:21:49.186 alembic.runtime.migration migration:830] new branch insert 4621fec11365
[I 2025-11-12 19:21:49.424 JupyterHub proxy:556] Generating new CONFIGPROXY_AUTH_TOKEN
[D 2025-11-12 19:21:49.424 JupyterHub app:2350] Loading roles into database
[D 2025-11-12 19:21:49.439 JupyterHub roles:326] Assigning default role to User id1234
[I 2025-11-12 19:21:49.442 JupyterHub roles:281] Adding role admin for User: id1234
[I 2025-11-12 19:21:49.450 JupyterHub roles:281] Adding role user for User: id1234
[D 2025-11-12 19:21:49.469 JupyterHub app:2697] Purging expired APITokens
[D 2025-11-12 19:21:49.470 JupyterHub app:2697] Purging expired OAuthCodes
[D 2025-11-12 19:21:49.472 JupyterHub app:2697] Purging expired Shares
[D 2025-11-12 19:21:49.472 JupyterHub app:2697] Purging expired ShareCodes
[D 2025-11-12 19:21:49.474 JupyterHub app:2471] Loading role assignments from config
[D 2025-11-12 19:21:49.483 JupyterHub app:2982] Initializing spawners
[D 2025-11-12 19:21:49.488 JupyterHub app:3133] Loaded users:
[I 2025-11-12 19:21:49.488 JupyterHub app:3429] Initialized 0 spawners in 0.005 seconds
[I 2025-11-12 19:21:49.491 JupyterHub metrics:425] Found 0 active users in the last ActiveUserPeriods.twenty_four_hours
[I 2025-11-12 19:21:49.492 JupyterHub metrics:425] Found 0 active users in the last ActiveUserPeriods.seven_days
[I 2025-11-12 19:21:49.492 JupyterHub metrics:425] Found 0 active users in the last ActiveUserPeriods.thirty_days
[W 2025-11-12 19:21:49.492 JupyterHub proxy:748] Running JupyterHub without SSL. I hope there is SSL termination happening somewhere else…
[I 2025-11-12 19:21:49.492 JupyterHub proxy:752] Starting proxy @ http://:8579/
[D 2025-11-12 19:21:49.492 JupyterHub proxy:753] Proxy cmd: [‘configurable-http-proxy’, ‘–ip’, ‘’, ‘–port’, ‘8579’, ‘–api-ip’, ‘127.0.0.1’, ‘–api-port’, ‘8001’, ‘–error-target’, ‘http://##.###.###.##:8580/hub/error’, ‘–log-level’, ‘debug’]
[D 2025-11-12 19:21:49.493 JupyterHub proxy:670] Writing proxy pid file: jupyterhub-proxy.pid
[D 2025-11-12 19:21:49.494 JupyterHub utils:278] Waiting 10s for server at ip-##-###-###-##:8579
[D 2025-11-12 19:21:49.494 JupyterHub utils:121] Server at ip-##-###-###-##:8579 not ready: [Errno 111] Connection refused
[D 2025-11-12 19:21:49.494 JupyterHub utils:278] Waiting 10s for server at 127.0.0.1:8001
[D 2025-11-12 19:21:49.494 JupyterHub utils:121] Server at 127.0.0.1:8001 not ready: [Errno 111] Connection refused
[D 2025-11-12 19:21:49.550 JupyterHub utils:121] Server at ip-##-###-###-##:8579 not ready: [Errno 111] Connection refused
2025-11-12T19:21:49.593Z [ConfigProxy] e[32minfoe[39m: Proxying http://*:8579 to (no default)
2025-11-12T19:21:49.594Z [ConfigProxy] e[32minfoe[39m: Proxy API at http://127.0.0.1:8001/api/routes
[D 2025-11-12 19:21:49.607 JupyterHub utils:286] Server at 127.0.0.1:8001 responded in 0.11s
[D 2025-11-12 19:21:49.616 JupyterHub utils:286] Server at ip-##-###-###-##:8579 responded in 0.12s
[D 2025-11-12 19:21:49.616 JupyterHub proxy:832] Proxy started and appears to be up
[D 2025-11-12 19:21:49.617 JupyterHub proxy:925] Proxy: Fetching GET http://127.0.0.1:8001/api/routes
2025-11-12T19:21:49.620Z [ConfigProxy] e[32minfoe[39m: 200 GET /api/routes
[I 2025-11-12 19:21:49.620 JupyterHub app:3752] Hub API listening on http://##.###.###.##:8580/hub/
[D 2025-11-12 19:21:49.620 JupyterHub proxy:389] Fetching routes to check
[D 2025-11-12 19:21:49.621 JupyterHub proxy:925] Proxy: Fetching GET http://127.0.0.1:8001/api/routes
2025-11-12T19:21:49.622Z [ConfigProxy] e[32minfoe[39m: 200 GET /api/routes
[D 2025-11-12 19:21:49.622 JupyterHub proxy:392] Checking routes
[I 2025-11-12 19:21:49.622 JupyterHub proxy:477] Adding route for Hub: / => http://##.###.###.##:8580
[D 2025-11-12 19:21:49.622 JupyterHub proxy:925] Proxy: Fetching POST http://127.0.0.1:8001/api/routes/
2025-11-12T19:21:49.622Z [ConfigProxy] e[32minfoe[39m: Adding route / → http://##.###.###.##:8580
2025-11-12T19:21:49.623Z [ConfigProxy] e[32minfoe[39m: Route added / → http://##.###.###.##:8580
2025-11-12T19:21:49.623Z [ConfigProxy] e[32minfoe[39m: 201 POST /api/routes/
[I 2025-11-12 19:21:49.623 JupyterHub app:3783] JupyterHub is now running at http://:8579/
[D 2025-11-12 19:21:49.623 JupyterHub app:3352] It took 0.476 seconds for the Hub to start
2025-11-12T19:22:01.178Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB / to http://##.###.###.##:8580
[I 2025-11-12 19:22:01.182 JupyterHub log:192] 302 GET / → /hub/ (@::ffff:##.###.###.#) 0.53ms
2025-11-12T19:22:01.184Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 302 on /
2025-11-12T19:22:01.342Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/ to http://##.###.###.##:8580
[W 2025-11-12 19:22:01.344 JupyterHub base:482] Invalid or expired cookie token
[I 2025-11-12 19:22:01.345 JupyterHub log:192] 302 GET /hub/ → /hub/login?next=%2Fhub%2F (@::ffff:##.###.###.#) 0.97ms
2025-11-12T19:22:01.345Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 302 on /
2025-11-12T19:22:01.498Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/login to http://##.###.###.##:8580
[I 2025-11-12 19:22:01.500 JupyterHub _xsrf_utils:130] Setting new xsrf cookie for b’6b9aa1787b7345dab5f8cd4fa5b6b97d:dSVWQroDRipobvKyQVPbLCekJ2yTEuT3ISLe92XHBtY=’ {‘path’: ‘/hub/’, ‘max_age’: 3600}
[I 2025-11-12 19:22:01.500 JupyterHub _xsrf_utils:130] Setting new xsrf cookie for b’6b9aa1787b7345dab5f8cd4fa5b6b97d:dSVWQroDRipobvKyQVPbLCekJ2yTEuT3ISLe92XHBtY=’ {‘path’: ‘/hub/’, ‘max_age’: 3600}
[I 2025-11-12 19:22:01.520 JupyterHub log:192] 200 GET /hub/login?next=%2Fhub%2F (@::ffff:##.###.###.#) 20.89ms
2025-11-12T19:22:@fortawesome1.720Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/static/components/@fortawesome/fontawesome-free/css/solid.css to http://##.###.###.##:8580
2025-11-12T1@fortawesome:22:01.721Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/static/components/@fortawesome/fontawesome-free/css/fontawesome.css to http://##.###.###.##:8@fortawesome80
[D 2025-11-12 19:22:01.723 JupyterHub log:192] 304 GET /hub/static/components/@fortawesome/fontawesome-free/css/solid.css (@::ffff:##.###.###.#) 2.27ms
2025-11-12T19:22:01.724Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 304 o@fortawesome /
[D 2025-11-12 19:22:01.724 JupyterHub log:192] 304 GET /hub/static/components/@fortawesome/fontawesome-free/css/fontawesome.css (@::ffff:##.###.###.#) 0.36ms
2025-11-12T19:22:01.724Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 304 on /
2025-11@fortawesome12T19:22:01.915Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/static/components/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 to http://##.###.###@fortawesome##:8580
[D 2025-11-12 19:22:01.916 JupyterHub log:192] 304 GET /hub/static/components/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 (@::ffff:##.###.###.#) 0.50ms
2025-11-12T19:22:01.917Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 304 on /
2025-11-12T19:22:12.357Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/login to http://##.###.###.##:8580
[D 2025-11-12 19:22:12.574 JupyterHub roles:326] Assigning default role to User id1234
[D 2025-11-12 19:22:12.576 JupyterHub base:685] Setting cookie for id1234: jupyterhub-hub-login
[D 2025-11-12 19:22:12.576 JupyterHub base:681] Setting cookie jupyterhub-hub-login: {‘httponly’: True, ‘path’: ‘/hub/’}
[I 2025-11-12 19:22:12.576 JupyterHub _xsrf_utils:130] Setting new xsrf cookie for b’6b9aa1787b7345dab5f8cd4fa5b6b97d:82dfe834706c4d16a074a1aa9e2451ac’ {‘path’: ‘/hub/’}
[I 2025-11-12 19:22:12.576 JupyterHub base:973] User logged in: id1234
[I 2025-11-12 19:22:12.576 JupyterHub log:192] 302 POST /hub/login?next=%2Fhub%2F → /hub/ (id1234@::ffff:##.###.###.#) 217.89ms
2025-11-12T19:22:12.577Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 302 on /
2025-11-12T19:22:12.728Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/ to http://##.###.###.##:8580
[D 2025-11-12 19:22:12.732 JupyterHub base:366] Recording first activity for <User(id1234 0/1 running)>
[D 2025-11-12 19:22:12.742 JupyterHub user:496] Creating <class ‘jupyterhub.spawner.LocalProcessSpawner’> for id1234:
[I 2025-11-12 19:22:12.743 JupyterHub log:192] 302 GET /hub/ → /hub/spawn (id1234@::ffff:##.###.###.#) 13.73ms
2025-11-12T19:22:12.743Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 302 on /
2025-11-12T19:22:12.882Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/spawn to http://##.###.###.##:8580
[D 2025-11-12 19:22:12.886 JupyterHub scopes:1013] Checking access to /hub/spawn via scope servers!server=id1234/
[D 2025-11-12 19:22:12.886 JupyterHub pages:241] Triggering spawn with default options for id1234
[D 2025-11-12 19:22:12.886 JupyterHub base:1097] Initiating spawn for id1234
[D 2025-11-12 19:22:12.886 JupyterHub base:1101] 0/100 concurrent spawns
[D 2025-11-12 19:22:12.886 JupyterHub base:1106] 0 active servers
[I 2025-11-12 19:22:12.909 JupyterHub provider:661] Creating oauth client jupyterhub-user-id1234
[D 2025-11-12 19:22:12.937 JupyterHub user:913] Calling Spawner.start for id1234
[I 2025-11-12 19:22:12.938 JupyterHub spawner:2068] Spawning jupyterhub-singleuser
[D 2025-11-12 19:22:12.954 JupyterHub spawner:1706] Polling subprocess every 30s
[D 2025-11-12 19:22:12.962 JupyterHub utils:298] Waiting 30s for server at http://##.###.###.##:51541/user/id1234/api
[I 2025-11-12 19:22:13.887 JupyterHub log:192] 302 GET /hub/spawn → /hub/spawn-pending/id1234 (id1234@::ffff:##.###.###.#) 1004.06ms
2025-11-12T19:22:13.887Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 302 on /
2025-11-12T19:22:14.026Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/spawn-pending/id1234 to http://##.###.###.##:8580
[D 2025-11-12 19:22:14.031 JupyterHub scopes:1013] Checking access to /hub/spawn-pending/id1234 via scope servers!server=id1234/
[I 2025-11-12 19:22:14.031 JupyterHub pages:441] id1234 is pending spawn
[I 2025-11-12 19:22:14.034 JupyterHub log:192] 200 GET /hub/spawn-pending/id1234 (id1234@::ff@fortawesomef:##.###.###.#) 6.63ms
2025-11-12T19:22:14.192Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/static/components/@fortawesome/fontawesome-free/css/fonta@fortawesomeesome.css to http://##.###.###.##:8580
[D 2025-11-12 19:22:14.193 JupyterHub log:192] 304 GET /hub/static/components/@fortawesome/fontawesome-free/css/fontawesome.css (@::ffff:##.###.###.#) 0.45ms
2025-11-12T19:22:14.194Z [ConfigProxy] e[34mdebuge[39m: Not recording @fortawesomectivity for status 304 on /
2025-11-12T19:22:14.199Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/static/components/@fortawesome/fontawesome-fre@fortawesome/css/solid.css to http://##.###.###.##:8580
[D 2025-11-12 19:22:14.200 JupyterHub log:192] 304 GET /hub/static/components/@fortawesome/fontawesome-free/css/solid.css (@::ffff:##.###.###.#) 0.33ms
2025-11-12T19:22:14.200Z [ConfigProxy] e[34mdebuge[39m: Not recor@fortawesomeing activity for status 304 on /
2025-11-12T19:22:14.353Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/static/components/@fortawesome/fontawesome-free/webfont@fortawesome/fa-solid-900.woff2 to http://##.###.###.##:8580
[D 2025-11-12 19:22:14.354 JupyterHub log:192] 304 GET /hub/static/components/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 (@::ffff:##.###.###.#) 0.44ms
2025-11-12T19:22:14.355Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 304 on /
2025-11-12T19:22:14.356Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/api/users/id1234/server/progress to http://##.###.###.##:8580
[W 2025-11-12 19:22:14.359 JupyterHub _xsrf_utils:203] Skipping XSRF check for insecure request GET /hub/api/users/id1234/server/progress
[D 2025-11-12 19:22:14.359 JupyterHub scopes:1013] Checking access to /hub/api/users/id1234/server/progress via scope read:servers!server=id1234/
[I 2025-11-12 19:22:14.758 JupyterHubSingleUser] Starting jupyterhub single-user server extension version 5.4.2
[I 2025-11-12 19:22:14.759 JupyterHubSingleUser] Using default url from environment $JUPYTERHUB_DEFAULT_URL: /lab
[I 2025-11-12 19:22:14.760 ServerApp] jupyterhub | extension was successfully linked.
[I 2025-11-12 19:22:14.773 JupyterHub log:192] 200 GET /hub/api (@##.###.###.##) 0.54ms
[I 2025-11-12 19:22:14.773 JupyterHubSingleUser] Updating Hub with activity every 300 seconds
[I 2025-11-12 19:22:14.773 ServerApp] jupyterhub | extension was successfully loaded.
[I 2025-11-12 19:22:14.776 ServerApp] Serving notebooks from local directory: /home/id1234
[I 2025-11-12 19:22:14.776 ServerApp] Jupyter Server 2.17.0 is running at:
[I 2025-11-12 19:22:14.776 ServerApp] http://##.###.###.##:51541/user/id1234/lab?token=…
[I 2025-11-12 19:22:14.776 ServerApp] http://127.0.0.1:51541/user/id1234/lab?token=…
[I 2025-11-12 19:22:14.776 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[D 2025-11-12 19:22:14.781 JupyterHub base:366] Recording first activity for <APIToken(‘943d…’, user=‘id1234’, client_id=‘jupyterhub’)>
[D 2025-11-12 19:22:14.793 JupyterHub scopes:1013] Checking access to /hub/api/users/id1234/activity via scope users:activity!user=id1234
[D 2025-11-12 19:22:14.795 JupyterHub users:1005] Activity for user id1234: 2025-11-12T19:22:14.764881Z
[D 2025-11-12 19:22:14.795 JupyterHub users:1023] Activity on server id1234/: 2025-11-12T19:22:14.764881Z
[I 2025-11-12 19:22:14.802 JupyterHub log:192] 200 POST /hub/api/users/id1234/activity (id1234@##.###.###.##) 23.28ms
[I 2025-11-12 19:22:14.809 ServerApp] 200 GET /user/id1234/api (@##.###.###.##) 0.73ms
[D 2025-11-12 19:22:14.809 JupyterHub utils:334] Server at http://##.###.###.##:51541/user/id1234/api responded in 1.85s
[D 2025-11-12 19:22:14.809 JupyterHub _version:73] jupyterhub and jupyterhub-singleuser both on version 5.4.2
[I 2025-11-12 19:22:14.809 JupyterHub base:1126] User id1234 took 1.923 seconds to start
[I 2025-11-12 19:22:14.810 JupyterHub proxy:331] Adding user id1234 to proxy /user/id1234/ => http://##.###.###.##:51541
[D 2025-11-12 19:22:14.810 JupyterHub proxy:925] Proxy: Fetching POST http://127.0.0.1:8001/api/routes/user/id1234
2025-11-12T19:22:14.811Z [ConfigProxy] e[32minfoe[39m: Adding route /user/id1234 → http://##.###.###.##:51541
2025-11-12T19:22:14.811Z [ConfigProxy] e[32minfoe[39m: Route added /user/id1234 → http://##.###.###.##:51541
2025-11-12T19:22:14.811Z [ConfigProxy] e[32minfoe[39m: 201 POST /api/routes/user/id1234
[I 2025-11-12 19:22:14.812 JupyterHub users:899] Server id1234 is ready
[I 2025-11-12 19:22:14.812 JupyterHub log:192] 200 GET /hub/api/users/id1234/server/progress?_xsrf=[secret] (id1234@::ffff:##.###.###.#) 455.44ms
2025-11-12T19:22:14.956Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/spawn-pending/id1234 to http://##.###.###.##:8580
[D 2025-11-12 19:22:14.960 JupyterHub scopes:1013] Checking access to /hub/spawn-pending/id1234 via scope servers!server=id1234/
[I 2025-11-12 19:22:14.960 JupyterHub log:192] 302 GET /hub/spawn-pending/id1234 → /user/id1234/ (id1234@::ffff:##.###.###.#) 3.50ms
2025-11-12T19:22:14.961Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 302 on /
2025-11-12T19:22:15.105Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /user/id1234/ to http://##.###.###.##:51541
[I 2025-11-12 19:22:15.107 ServerApp] 302 GET /user/id1234/ → /user/id1234/lab? (@::ffff:##.###.###.#) 0.47ms
2025-11-12T19:22:15.108Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 302 on /user/id1234
2025-11-12T19:22:15.248Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /user/id1234/lab to http://##.###.###.##:51541
[W 2025-11-12 19:22:15.259 ServerApp] 404 GET /user/id1234/lab (@::ffff:##.###.###.#) 10.48ms
2025-11-12T19:22:15.260Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 404 on /user/id1234
2025-11-12T19:24:25.229Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/admin to http://##.###.###.##:8580
[D 2025-11-12 19:24:25.240 JupyterHub scopes:1013] Checking access to /hub/admin via scope admin-ui
[I 2025@fortawesome11-12 19:24:25.243 JupyterHub log:192] 200 GET /hub/admin (id1234@::ffff:##.###.###.#) 13.63ms
2025-11-12T19:24:25.407Z [ConfigProxy] e[34md@fortawesomebuge[39m: PROXY WEB /hub/static/components/@fortawesome/fontawesome-free/css/fontawesome.css to http://##.###.###.##:8580
[D 2025-11-12 19:24:25.409 JupyterHub log:192] 304 GET /hub/static/components/@fortawesome/fontawesome-free/css/fontawesome.css (@::ffff:##.###.###.#) 0.40m@fortawesome
2025-11-12T19:24:25.409Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 304 on /
2025-11-12T19:24:25.417Z [ConfigPr@fortawesomexy] e[34mdebuge[39m: PROXY WEB /hub/static/components/@fortawesome/fontawesome-free/css/solid.css to http://##.###.###.##:8580
[D 2025-11-12 19:24:25.418 JupyterHub log:192] 304 GET /hub/static/components/@fortawesome/fontawesome-free/css/solid.css (@::ffff:##.###.###.#) @fortawesome.31ms
2025-11-12T19:24:25.419Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 304 on /
2025-11-12T19:24:25.586Z [ConfigProxy] e[34@fortawesomedebuge[39m: PROXY WEB /hub/static/components/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 to http://##.###.###.##:8580
[D 2025-11-12 19:24:25.587 JupyterHub log:192] 304 GET /hub/static/components/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 (@::ffff:##.###.###.#) 0.46ms
2025-11-12T19:24:25.587Z [ConfigProxy] e[34mdebuge[39m: Not recording activity for status 304 on /
2025-11-12T19:24:25.592Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/api/users to http://##.###.###.##:8580
[W 2025-11-12 19:24:25.595 JupyterHub _xsrf_utils:203] Skipping XSRF check for insecure request GET /hub/api/users
[D 2025-11-12 19:24:25.595 JupyterHub scopes:1013] Checking access to /hub/api/users via scope list:users
[I 2025-11-12 19:24:25.610 JupyterHub log:192] 200 GET /hub/api/users?include_stopped_servers=1&offset=0&limit=50&name_filter=&sort=id&state=[secret]&_xsrf=[secret] (id1234@::ffff:##.###.###.#) 17.59ms
2025-11-12T19:24:32.260Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/api/users/id1234/servers/ to http://##.###.###.##:8580
[D 2025-11-12 19:24:32.264 JupyterHub scopes:1013] Checking access to /hub/api/users/id1234/servers/ via scope delete:servers!server=id1234/
[I 2025-11-12 19:24:32.266 JupyterHub proxy:356] Removing user id1234 from proxy (/user/id1234/)
[D 2025-11-12 19:24:32.266 JupyterHub proxy:925] Proxy: Fetching DELETE http://127.0.0.1:8001/api/routes/user/id1234
2025-11-12T19:24:32.267Z [ConfigProxy] e[32minfoe[39m: Removing route /user/id1234
2025-11-12T19:24:32.267Z [ConfigProxy] e[32minfoe[39m: 204 DELETE /api/routes/user/id1234
[D 2025-11-12 19:24:32.268 JupyterHub user:1097] Stopping id1234
[D 2025-11-12 19:24:32.268 JupyterHub spawner:2156] Interrupting 155252
[I 2025-11-12 19:24:32.268 ServerApp] Interrupted…
[D 2025-11-12 19:24:32.748 JupyterHub user:1119] Deleting oauth client jupyterhub-user-id1234
[D 2025-11-12 19:24:32.759 JupyterHub user:1122] Finished stopping id1234
[I 2025-11-12 19:24:32.779 JupyterHub base:1365] User id1234 server took 0.513 seconds to stop
[I 2025-11-12 19:24:32.779 JupyterHub log:192] 204 DELETE /hub/api/users/id1234/servers/?_xsrf=[secret] (id1234@::ffff:##.###.###.#) 517.75ms
2025-11-12T19:24:32.917Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/api/users to http://##.###.###.##:8580
[W 2025-11-12 19:24:32.920 JupyterHub _xsrf_utils:203] Skipping XSRF check for insecure request GET /hub/api/users
[D 2025-11-12 19:24:32.921 JupyterHub scopes:1013] Checking access to /hub/api/users via scope list:users
[I 2025-11-12 19:24:32.925 JupyterHub log:192] 200 GET /hub/api/users?include_stopped_servers=1&offset=0&limit=50&name_filter=&sort=id&state=[secret]&_xsrf=[secret] (id1234@::ffff:##.###.###.#) 7.41ms
2025-11-12T19:24:57.387Z [ConfigProxy] e[34mdebuge[39m: PROXY WEB /hub/api/shutdown to http://##.###.###.##:8580
[D 2025-11-12 19:24:57.391 JupyterHub scopes:1013] Checking access to /hub/api/shutdown via scope shutdown
[I 2025-11-12 19:24:57.391 JupyterHub log:192] 202 POST /hub/api/shutdown?_xsrf=[secret] (id1234@::ffff:##.###.###.#) 3.15ms
[C 2025-11-12 19:24:57.392 JupyterHub app:3872] Initiating shutdown…
[I 2025-11-12 19:24:57.392 JupyterHub app:3483] Cleaning up single-user servers…
[D 2025-11-12 19:24:57.392 JupyterHub app:3495] Stopping proxy
[I 2025-11-12 19:24:57.392 JupyterHub proxy:865] Cleaning up proxy[155162]…
[D 2025-11-12 19:24:57.392 JupyterHub proxy:678] Removing proxy pid file jupyterhub-proxy.pid
[I 2025-11-12 19:24:57.392 JupyterHub app:3515] …done
2025-11-12T19:24:57.392Z [ConfigProxy] e[33mwarne[39m: Terminated
[D 2025-11-12 19:24:57.392 JupyterHub app:3881] Cancelling pending tasks
[D 2025-11-12 19:24:57.392 JupyterHub app:3893] Task status: <Task pending name=‘Task-293’ coro=<JupyterHub.shutdown_cancel_tasks() running at /usr/local/lib/python3.13/site-packages/jupyterhub/app.py:3893> cb=[_wrap_awaitable..() at /usr/local/lib/python3.13/site-packages/tornado/gen.py:868, IOLoop.add_future..() at /usr/local/lib/python3.13/site-packages/tornado/ioloop.py:707]>