Here is my DEBUG log:
[I 2025-07-22 15:50:50.407 JupyterHub app:3354] Running JupyterHub version 5.3.0
[I 2025-07-22 15:50:50.407 JupyterHub app:3384] Using Authenticator: oauthenticator.generic.LocalGenericOAuthenticator-17.3.0
[I 2025-07-22 15:50:50.407 JupyterHub app:3384] Using Spawner: dockerspawner.dockerspawner.DockerSpawner-14.0.0
[I 2025-07-22 15:50:50.407 JupyterHub app:3384] Using Proxy: jupyterhub.proxy.ConfigurableHTTPProxy-5.3.0
/usr/local/lib/python3.10/dist-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-07-22 15:50:50.414 JupyterHub app:1875] Generating new cookie_secret
[I 2025-07-22 15:50:50.414 JupyterHub app:1880] Writing cookie_secret to /srv/jupyterhub_config/jupyterhub_cookie_secret
[D 2025-07-22 15:50:50.422 JupyterHub app:2006] Connecting to db: postgresql://datalab:[redacted]@db:5432/datalab
[D 2025-07-22 15:50:50.454 JupyterHub orm:1509] database schema version found: 4621fec11365
[I 2025-07-22 15:50:50.503 JupyterHub proxy:556] Generating new CONFIGPROXY_AUTH_TOKEN
[D 2025-07-22 15:50:50.504 JupyterHub app:2346] Loading roles into database
[D 2025-07-22 15:50:50.525 JupyterHub app:2693] Purging expired APITokens
[D 2025-07-22 15:50:50.527 JupyterHub app:2693] Purging expired OAuthCodes
[D 2025-07-22 15:50:50.529 JupyterHub app:2693] Purging expired Shares
[D 2025-07-22 15:50:50.530 JupyterHub app:2693] Purging expired ShareCodes
[D 2025-07-22 15:50:50.532 JupyterHub app:2467] Loading role assignments from config
[D 2025-07-22 15:50:50.546 JupyterHub app:2978] Initializing spawners
[D 2025-07-22 15:50:50.553 JupyterHub app:3128] Loaded users:
[I 2025-07-22 15:50:50.553 JupyterHub app:3424] Initialized 0 spawners in 0.007 seconds
[I 2025-07-22 15:50:50.557 JupyterHub metrics:425] Found 1 active users in the last ActiveUserPeriods.twenty_four_hours
[I 2025-07-22 15:50:50.558 JupyterHub metrics:425] Found 1 active users in the last ActiveUserPeriods.seven_days
[I 2025-07-22 15:50:50.559 JupyterHub metrics:425] Found 1 active users in the last ActiveUserPeriods.thirty_days
[W 2025-07-22 15:50:50.559 JupyterHub proxy:748] Running JupyterHub without SSL. I hope there is SSL termination happening somewhere else...
[I 2025-07-22 15:50:50.559 JupyterHub proxy:752] Starting proxy @ http://datalab:8000
[D 2025-07-22 15:50:50.559 JupyterHub proxy:753] Proxy cmd: ['configurable-http-proxy', '--ip', 'datalab', '--port', '8000', '--api-ip', '127.0.0.1', '--api-port', '8001', '--error-target', 'http://datalab:8081/hub/error', '--log-level', 'info']
[D 2025-07-22 15:50:50.560 JupyterHub proxy:670] Writing proxy pid file: jupyterhub-proxy.pid
[D 2025-07-22 15:50:50.560 JupyterHub utils:277] Waiting 10s for server at datalab:8000
[D 2025-07-22 15:50:50.560 JupyterHub utils:121] Server at datalab:8000 not ready: [Errno 111] Connection refused
[D 2025-07-22 15:50:50.560 JupyterHub utils:277] Waiting 10s for server at 127.0.0.1:8001
[D 2025-07-22 15:50:50.560 JupyterHub utils:121] Server at 127.0.0.1:8001 not ready: [Errno 111] Connection refused
[D 2025-07-22 15:50:50.662 JupyterHub utils:121] Server at datalab:8000 not ready: [Errno 111] Connection refused
15:50:50.706 [ConfigProxy] info: Proxying http://datalab:8000 to (no default)
15:50:50.707 [ConfigProxy] info: Proxy API at http://127.0.0.1:8001/api/routes
[D 2025-07-22 15:50:50.724 JupyterHub utils:285] Server at 127.0.0.1:8001 responded in 0.16s
[D 2025-07-22 15:50:50.934 JupyterHub utils:285] Server at datalab:8000 responded in 0.37s
[D 2025-07-22 15:50:50.934 JupyterHub proxy:832] Proxy started and appears to be up
[D 2025-07-22 15:50:50.935 JupyterHub proxy:925] Proxy: Fetching GET http://127.0.0.1:8001/api/routes
[I 2025-07-22 15:50:50.959 JupyterHub app:3747] Hub API listening on http://datalab:8081/hub/
[D 2025-07-22 15:50:50.959 JupyterHub proxy:389] Fetching routes to check
[D 2025-07-22 15:50:50.959 JupyterHub proxy:925] Proxy: Fetching GET http://127.0.0.1:8001/api/routes
15:50:50.959 [ConfigProxy] info: 200 GET /api/routes
15:50:50.962 [ConfigProxy] info: 200 GET /api/routes
[D 2025-07-22 15:50:50.962 JupyterHub proxy:392] Checking routes
[I 2025-07-22 15:50:50.963 JupyterHub proxy:477] Adding route for Hub: / => http://datalab:8081
[D 2025-07-22 15:50:50.963 JupyterHub proxy:925] Proxy: Fetching POST http://127.0.0.1:8001/api/routes/
15:50:50.969 [ConfigProxy] info: Adding route / -> http://datalab:8081
15:50:50.971 [ConfigProxy] info: Route added / -> http://datalab:8081
15:50:50.972 [ConfigProxy] info: 201 POST /api/routes/
[I 2025-07-22 15:50:50.972 JupyterHub app:3778] JupyterHub is now running at http://datalab:8000
[D 2025-07-22 15:50:50.973 JupyterHub app:3347] It took 0.579 seconds for the Hub to start
[D 2025-07-22 15:55:50.973 JupyterHub proxy:925] Proxy: Fetching GET http://127.0.0.1:8001/api/routes
15:55:50.979 [ConfigProxy] info: 200 GET /api/routes
[D 2025-07-22 15:55:50.981 JupyterHub proxy:392] Checking routes
[I 2025-07-22 15:57:18.631 JupyterHub log:192] 302 GET / -> /hub/ (@74.96.66.129) 0.41ms
[I 2025-07-22 15:57:18.671 JupyterHub log:192] 302 GET /hub/ -> /hub/login?next=%2Fhub%2F (@74.96.66.129) 1.49ms
[I 2025-07-22 15:57:18.713 JupyterHub log:192] 302 GET /hub/login?next=%2Fhub%2F -> /hub/oauth_login?next=%2Fhub%2F (@74.96.66.129) 2.46ms
[I 2025-07-22 15:57:18.747 JupyterHub oauth2:126] OAuth redirect: https://datalab.example.com/hub/oauth_callback
[D 2025-07-22 15:57:18.748 JupyterHub base:681] Setting cookie oauthenticator-state: {'httponly': True, 'expires_days': 1}
[I 2025-07-22 15:57:18.750 JupyterHub log:192] 302 GET /hub/oauth_login?next=%2Fhub%2F -> https://auth.example.com/realms/research/protocol/openid-connect/auth?response_type=code&redirect_uri=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fdatalab.example.com%2Fhub%2Foauth_callback&client_id=jupyter&code_challenge=[secret]&code_challenge_method=[secret]&state=[secret]&scope=openid+email (@74.96.66.129) 3.96ms
[E 2025-07-22 15:57:36.918 JupyterHub oauth2:1245] The auth_state_groups_key oauth_user.groups does not exist in the auth_model. Available keys are: dict_keys(['access_token', 'refresh_token', 'id_token', 'scope', 'token_response', 'oauth_user'])
[D 2025-07-22 15:57:36.941 JupyterHub roles:326] Assigning default role to User btf
[D 2025-07-22 15:57:36.954 JupyterHub base:681] Setting cookie jupyterhub-session-id: {'httponly': True, 'path': '/'}
[D 2025-07-22 15:57:36.954 JupyterHub base:685] Setting cookie for btf: jupyterhub-hub-login
[D 2025-07-22 15:57:36.955 JupyterHub base:681] Setting cookie jupyterhub-hub-login: {'httponly': True, 'path': '/hub/'}
[I 2025-07-22 15:57:36.955 JupyterHub _xsrf_utils:130] Setting new xsrf cookie for b'4X9bEARTyEAREsSQTI9BuVcgp-p8xAqTKmmRULCBb2E=:9648a06bb6524b5f8ad16d4974419dc1' {'path': '/hub/'}
[I 2025-07-22 15:57:36.955 JupyterHub base:973] User logged in: btf
[I 2025-07-22 15:57:36.956 JupyterHub log:192] 302 GET /hub/oauth_callback?state=[secret]&session_state=[secret]&iss=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fauth.example.com%2Frealms%2Fresearch&code=[secret] -> /hub/ ([email protected]) 319.78ms
[D 2025-07-22 15:57:37.054 JupyterHub user:496] Creating <class 'dockerspawner.dockerspawner.DockerSpawner'> for btf:
[I 2025-07-22 15:57:37.059 JupyterHub log:192] 302 GET /hub/ -> /hub/spawn ([email protected]) 34.44ms
[D 2025-07-22 15:57:37.145 JupyterHub scopes:1013] Checking access to /hub/spawn via scope servers!server=btf/
[D 2025-07-22 15:57:37.147 JupyterHub pages:216] Triggering spawn with default options for btf
[D 2025-07-22 15:57:37.148 JupyterHub base:411] Refreshing auth for btf
[E 2025-07-22 15:57:37.188 JupyterHub oauth2:1245] The auth_state_groups_key oauth_user.groups does not exist in the auth_model. Available keys are: dict_keys(['access_token', 'refresh_token', 'id_token', 'scope', 'token_response', 'oauth_user'])
[D 2025-07-22 15:57:37.188 JupyterHub roles:326] Assigning default role to User btf
[D 2025-07-22 15:57:37.198 JupyterHub base:1097] Initiating spawn for btf
[D 2025-07-22 15:57:37.198 JupyterHub base:1101] 0/100 concurrent spawns
[D 2025-07-22 15:57:37.198 JupyterHub base:1106] 0/10 active servers
[I 2025-07-22 15:57:37.233 JupyterHub provider:661] Creating oauth client jupyterhub-user-btf
[D 2025-07-22 15:57:37.246 JupyterHub user:913] Calling Spawner.start for btf
[D 2025-07-22 15:57:37.286 JupyterHub dockerspawner:1034] Getting container 'example-datalab-btf'
[I 2025-07-22 15:57:37.288 JupyterHub dockerspawner:1040] Container 'example-datalab-btf' is gone
[D 2025-07-22 15:57:37.288 JupyterHub dockerspawner:1212] Starting host with config: {'auto_remove': True, 'binds': {}, 'links': {'jupyterhub': 'datalab'}, 'mounts': [{'Target': '/etc', 'Source': 'example_datalab_etc', 'Type': 'volume', 'ReadOnly': False, 'VolumeOptions': {'DriverConfig': {'Name': 'local'}}}, {'Target': '/home', 'Source': 'example_datalab_home', 'Type': 'volume', 'ReadOnly': False, 'VolumeOptions': {'DriverConfig': {'Name': 'local'}}}], 'mem_limit': 0, 'cpu_period': 100000, 'cpu_quota': 0, 'network_mode': 'backend'}
[I 2025-07-22 15:57:37.331 JupyterHub dockerspawner:1318] Created container example-datalab-btf (id: 4e4314a) from image elmo:5001/scipy-notebook:latest
[I 2025-07-22 15:57:37.331 JupyterHub dockerspawner:1342] Starting container example-datalab-btf (id: 4e4314a)
[D 2025-07-22 15:57:37.484 JupyterHub spawner:1693] Polling subprocess every 30s
[D 2025-07-22 15:57:37.484 JupyterHub dockerspawner:977] Persisting state for btf: container name=example-datalab-btf, id=4e4314a30c7cff35e4da5c3877efed7313334c274da88e66054c82487a8112e8
[D 2025-07-22 15:57:37.487 JupyterHub utils:297] Waiting 30s for server at http://10.1.0.13:8888/user/btf/api
[I 2025-07-22 15:57:38.148 JupyterHub log:192] 302 GET /hub/spawn -> /hub/spawn-pending/btf ([email protected]) 1022.63ms
[D 2025-07-22 15:57:38.215 JupyterHub scopes:1013] Checking access to /hub/spawn-pending/btf via scope servers!server=btf/
[I 2025-07-22 15:57:38.215 JupyterHub pages:400] btf is pending spawn
[D 2025-07-22 15:57:38.216 JupyterHub _xsrf_utils:161] xsrf id mismatch b'4X9bEARTyEAREsSQTI9BuVcgp-p8xAqTKmmRULCBb2E=:9648a06bb6524b5f8ad16d4974419dc1' != b'1d0a96bfdea040a3beb2a11d070496fb:9648a06bb6524b5f8ad16d4974419dc1'
[I 2025-07-22 15:57:38.216 JupyterHub _xsrf_utils:130] Setting new xsrf cookie for b'1d0a96bfdea040a3beb2a11d070496fb:9648a06bb6524b5f8ad16d4974419dc1' {'path': '/hub/'}
[I 2025-07-22 15:57:38.246 JupyterHub log:192] 200 GET /hub/spawn-pending/btf ([email protected]) 36.33ms
[D 2025-07-22 15:57:38.324 JupyterHub log:192] 200 GET /hub/static/css/style.min.css?v=90495ca2cd6745c4b19a42dfd4b244ac5ca697ae76bf6f58a465da54045d2e0032f25207e2ebe4df838e4d7bd40c183228f28bbacc2456fe706797438809f749 (@74.96.66.129) 3.26ms
[D 2025-07-22 15:57:38.327 JupyterHub log:192] 200 GET /hub/static/components/bootstrap/dist/js/bootstrap.bundle.min.js?v=ecf8bfa2d7656db091f8b9d6f85ecfc057120c93ae5090773b1b441db838bd232fcef26375ee0fa35bf8051f4675cf5a5cd50d155518f922b9d70593f161741a (@74.96.66.129) 0.66ms
[D 2025-07-22 15:57:38.328 JupyterHub log:192] 200 GET /hub/static/js/darkmode.js?v=2fd9a7d11ad78df9351fed40ab35eab52e1e6a3d516f188b652120e6faf57b8e387a30aae8f52a6fb51563d06d04545c7005da0b77a98c21b0bd28f6d1cdfa11 (@74.96.66.129) 0.53ms
[D 2025-07-22 15:57:38.329 JupyterHub log:192] 200 GET /hub/static/components/jquery/dist/jquery.min.js?v=bf6089ed4698cb8270a8b0c8ad9508ff886a7a842278e98064d5c1790ca3a36d5d69d9f047ef196882554fc104da2c88eb5395f1ee8cf0f3f6ff8869408350fe (@74.96.66.129) 0.64ms
[D 2025-07-22 15:57:38.330 JupyterHub log:192] 200 GET /hub/static/components/requirejs/require.js?v=1ff44af658602d913b22fca97c78f98945f47e76dacf9800f32f35350f05e9acda6dc710b8501579076f3980de02f02c97f5994ce1a9864c21865a42262d79ec (@74.96.66.129) 0.83ms
[D 2025-07-22 15:57:38.332 JupyterHub log:192] 200 GET /hub/logo (@74.96.66.129) 0.55ms
[D 2025-07-22 15:57:38.463 JupyterHub log:192] 200 GET /hub/static/favicon.ico?v=fde5757cd3892b979919d3b1faa88a410f28829feb5ba22b6cf069f2c6c98675fceef90f932e49b510e74d65c681d5846b943e7f7cc1b41867422f0481085c1f (@74.96.66.129) 0.63ms
[D 2025-07-22 15:57:38.468 JupyterHub log:192] 200 GET /hub/static/components/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 (@74.96.66.129) 0.72ms
[D 2025-07-22 15:57:38.479 JupyterHub scopes:1013] Checking access to /hub/api/users/btf/server/progress via scope read:servers!server=btf/
[I 2025-07-22 15:57:39.993 JupyterHub log:192] 200 GET /hub/api (@10.1.0.13) 0.49ms
[D 2025-07-22 15:57:40.102 JupyterHub base:366] Recording first activity for <APIToken('215c...', user='btf', client_id='jupyterhub')>
[D 2025-07-22 15:57:40.108 JupyterHub scopes:1013] Checking access to /hub/api/users/btf/activity via scope users:activity!user=btf
[D 2025-07-22 15:57:40.112 JupyterHub users:1006] Activity for user btf: 2025-07-22T15:57:39.976288Z
[D 2025-07-22 15:57:40.112 JupyterHub users:1024] Activity on server btf/: 2025-07-22T15:57:39.976288Z
[I 2025-07-22 15:57:40.115 JupyterHub log:192] 200 POST /hub/api/users/btf/activity ([email protected]) 14.89ms
[D 2025-07-22 15:57:40.116 JupyterHub utils:333] Server at http://10.1.0.13:8888/user/btf/api responded in 2.63s
[D 2025-07-22 15:57:40.117 JupyterHub _version:73] jupyterhub and jupyterhub-singleuser both on version 5.3.0
[I 2025-07-22 15:57:40.117 JupyterHub base:1126] User btf took 2.919 seconds to start
[I 2025-07-22 15:57:40.117 JupyterHub proxy:331] Adding user btf to proxy /user/btf/ => http://10.1.0.13:8888
[D 2025-07-22 15:57:40.117 JupyterHub proxy:925] Proxy: Fetching POST http://127.0.0.1:8001/api/routes/user/btf
15:57:40.120 [ConfigProxy] info: Adding route /user/btf -> http://10.1.0.13:8888
15:57:40.120 [ConfigProxy] info: Route added /user/btf -> http://10.1.0.13:8888
15:57:40.120 [ConfigProxy] info: 201 POST /api/routes/user/btf
[I 2025-07-22 15:57:40.121 JupyterHub users:899] Server btf is ready
[I 2025-07-22 15:57:40.121 JupyterHub log:192] 200 GET /hub/api/users/btf/server/progress?_xsrf=[secret] ([email protected]) 1646.15ms
[D 2025-07-22 15:57:40.201 JupyterHub scopes:1013] Checking access to /hub/spawn-pending/btf via scope servers!server=btf/
[I 2025-07-22 15:57:40.201 JupyterHub log:192] 302 GET /hub/spawn-pending/btf -> /user/btf/ ([email protected]) 4.76ms
[D 2025-07-22 15:57:40.291 JupyterHub provider:421] Validating client id jupyterhub-user-btf
[D 2025-07-22 15:57:40.292 oauthlib.oauth2.rfc6749.grant_types.authorization_code authorization_code:362] Validating redirection uri /user/btf/oauth_callback for client jupyterhub-user-btf.
[D 2025-07-22 15:57:40.292 oauthlib.oauth2.rfc6749.grant_types.base base:231] Using provided redirect_uri /user/btf/oauth_callback
[D 2025-07-22 15:57:40.292 JupyterHub provider:497] validate_redirect_uri: client_id=jupyterhub-user-btf, redirect_uri=/user/btf/oauth_callback
[D 2025-07-22 15:57:40.293 oauthlib.oauth2.rfc6749.grant_types.base base:172] Validating access to scopes ['read:users:groups!user', 'access:servers!server=btf/', 'read:users:name!user'] for client 'jupyterhub-user-btf' (<OAuthClient(identifier='jupyterhub-user-btf')>).
[D 2025-07-22 15:57:40.294 JupyterHub provider:624] Allowing request for scope(s) for jupyterhub-user-btf: read:users:groups!user,access:servers!server=btf/,read:users:name!user
[D 2025-07-22 15:57:40.294 JupyterHub auth:326] Skipping oauth confirmation for <User(btf 1/1 running)> accessing Server at /user/btf/
[D 2025-07-22 15:57:40.295 oauthlib.oauth2.rfc6749.endpoints.authorization authorization:98] Dispatching response_type code request to <oauthlib.oauth2.rfc6749.grant_types.authorization_code.AuthorizationCodeGrant object at 0x7f1d5be18790>.
[D 2025-07-22 15:57:40.295 JupyterHub provider:421] Validating client id jupyterhub-user-btf
[D 2025-07-22 15:57:40.295 oauthlib.oauth2.rfc6749.grant_types.authorization_code authorization_code:362] Validating redirection uri /user/btf/oauth_callback for client jupyterhub-user-btf.
[D 2025-07-22 15:57:40.295 oauthlib.oauth2.rfc6749.grant_types.base base:231] Using provided redirect_uri /user/btf/oauth_callback
[D 2025-07-22 15:57:40.295 JupyterHub provider:497] validate_redirect_uri: client_id=jupyterhub-user-btf, redirect_uri=/user/btf/oauth_callback
[D 2025-07-22 15:57:40.296 oauthlib.oauth2.rfc6749.grant_types.base base:172] Validating access to scopes {'read:users:groups!user', 'access:servers!server=btf/', 'read:users:name!user'} for client 'jupyterhub-user-btf' (<OAuthClient(identifier='jupyterhub-user-btf')>).
[D 2025-07-22 15:57:40.297 JupyterHub provider:624] Allowing request for scope(s) for jupyterhub-user-btf: read:users:groups!user,access:servers!server=btf/,read:users:name!user
[D 2025-07-22 15:57:40.297 oauthlib.oauth2.rfc6749.grant_types.authorization_code authorization_code:245] Pre resource owner authorization validation ok for <oauthlib.Request SANITIZED>.
[D 2025-07-22 15:57:40.297 oauthlib.oauth2.rfc6749.grant_types.authorization_code authorization_code:170] Created authorization code grant {'code': 'fLgcRK02MRNrngXaul7nMN9nLYonsd', 'state': 'qBrKBCsSa-TW340ZvVVrCA'} for request <oauthlib.Request SANITIZED>.
[D 2025-07-22 15:57:40.297 oauthlib.oauth2.rfc6749.grant_types.authorization_code authorization_code:277] Saving grant {'code': 'fLgcRK02MRNrngXaul7nMN9nLYonsd', 'state': 'qBrKBCsSa-TW340ZvVVrCA'} for <oauthlib.Request SANITIZED>.
[D 2025-07-22 15:57:40.297 JupyterHub provider:247] Saving authorization code jupyterhub-user-btf, fLg..., (), {}
[I 2025-07-22 15:57:40.303 JupyterHub log:192] 302 GET /hub/api/oauth2/authorize?client_id=jupyterhub-user-btf&redirect_uri=%2Fuser%2Fbtf%2Foauth_callback&response_type=code&state=[secret] -> /user/btf/oauth_callback?code=[secret]&state=[secret] ([email protected]) 15.96ms
[D 2025-07-22 15:57:40.349 oauthlib.oauth2.rfc6749.endpoints.token token:112] Dispatching grant_type authorization_code request to <oauthlib.oauth2.rfc6749.grant_types.authorization_code.AuthorizationCodeGrant object at 0x7f1d5be18790>.
[D 2025-07-22 15:57:40.350 JupyterHub provider:58] authenticate_client <oauthlib.Request SANITIZED>
[D 2025-07-22 15:57:40.380 oauthlib.oauth2.rfc6749.grant_types.authorization_code authorization_code:533] Using provided redirect_uri /user/btf/oauth_callback
[D 2025-07-22 15:57:40.380 JupyterHub provider:117] confirm_redirect_uri: client_id=jupyterhub-user-btf, redirect_uri=/user/btf/oauth_callback
[D 2025-07-22 15:57:40.380 oauthlib.oauth2.rfc6749.grant_types.authorization_code authorization_code:301] Token request validation ok for <oauthlib.Request SANITIZED>.
[D 2025-07-22 15:57:40.380 JupyterHub provider:345] Saving bearer token {'access_token': 'REDACTED', 'expires_in': 1209600, 'token_type': 'Bearer', 'scope': 'read:users:groups!user access:servers!server=btf/ read:users:name!user', 'refresh_token': 'REDACTED'}
[D 2025-07-22 15:57:40.389 JupyterHub provider:205] Deleting oauth code fLg... for jupyterhub-user-btf
[I 2025-07-22 15:57:40.396 JupyterHub log:192] 200 POST /hub/api/oauth2/token ([email protected]) 53.87ms
[D 2025-07-22 15:57:40.399 JupyterHub base:366] Recording first activity for <APIToken('HQpU...', user='btf', client_id='jupyterhub-user-btf')>
[I 2025-07-22 15:57:40.403 JupyterHub log:192] 200 GET /hub/api/user ([email protected]) 5.42ms
[D 2025-07-22 15:58:08.749 JupyterHub dockerspawner:1034] Getting container 'example-datalab-btf'
[D 2025-07-22 15:58:08.757 JupyterHub dockerspawner:1017] Container 4e4314a status: {"Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 1574376, "ExitCode": 0, "Error": "", "StartedAt": "2025-07-22T15:57:37.350591935Z", "FinishedAt": "0001-01-01T00:00:00Z", "Health": {"Status": "unhealthy", "FailingStreak": 9, "Log": [{"Start": "2025-07-22T11:57:54.828141405-04:00", "End": "2025-07-22T11:57:54.929299273-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:57:57.930585836-04:00", "End": "2025-07-22T11:57:57.974467745-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:00.975511789-04:00", "End": "2025-07-22T11:58:01.029303895-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:04.030299103-04:00", "End": "2025-07-22T11:58:04.125957029-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:07.12701605-04:00", "End": "2025-07-22T11:58:07.230189926-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}]}}
[D 2025-07-22 15:58:10.037 JupyterHub dockerspawner:1034] Getting container 'example-datalab-btf'
[D 2025-07-22 15:58:10.044 JupyterHub dockerspawner:1017] Container 4e4314a status: {"Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 1574376, "ExitCode": 0, "Error": "", "StartedAt": "2025-07-22T15:57:37.350591935Z", "FinishedAt": "0001-01-01T00:00:00Z", "Health": {"Status": "unhealthy", "FailingStreak": 9, "Log": [{"Start": "2025-07-22T11:57:54.828141405-04:00", "End": "2025-07-22T11:57:54.929299273-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:57:57.930585836-04:00", "End": "2025-07-22T11:57:57.974467745-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:00.975511789-04:00", "End": "2025-07-22T11:58:01.029303895-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:04.030299103-04:00", "End": "2025-07-22T11:58:04.125957029-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:07.12701605-04:00", "End": "2025-07-22T11:58:07.230189926-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}]}}
[I 2025-07-22 15:58:10.069 JupyterHub log:192] 200 GET /hub/home ([email protected]) 54.16ms
[D 2025-07-22 15:58:10.196 JupyterHub log:192] 200 GET /hub/static/js/home.js?v=20250722155050 (@74.96.66.129) 2.28ms
[D 2025-07-22 15:58:10.244 JupyterHub log:192] 200 GET /hub/static/components/moment/moment.js?v=20250722155050 (@74.96.66.129) 3.02ms
[D 2025-07-22 15:58:10.249 JupyterHub log:192] 200 GET /hub/static/js/jhapi.js?v=20250722155050 (@74.96.66.129) 2.26ms
[D 2025-07-22 15:58:10.322 JupyterHub log:192] 200 GET /hub/static/js/utils.js?v=20250722155050 (@74.96.66.129) 0.70ms
[D 2025-07-22 15:58:12.086 JupyterHub scopes:1013] Checking access to /hub/api/users/btf/server via scope delete:servers!server=btf/
[D 2025-07-22 15:58:12.100 JupyterHub dockerspawner:1034] Getting container 'example-datalab-btf'
[D 2025-07-22 15:58:12.106 JupyterHub dockerspawner:1017] Container 4e4314a status: {"Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 1574376, "ExitCode": 0, "Error": "", "StartedAt": "2025-07-22T15:57:37.350591935Z", "FinishedAt": "0001-01-01T00:00:00Z", "Health": {"Status": "unhealthy", "FailingStreak": 10, "Log": [{"Start": "2025-07-22T11:57:57.930585836-04:00", "End": "2025-07-22T11:57:57.974467745-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:00.975511789-04:00", "End": "2025-07-22T11:58:01.029303895-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:04.030299103-04:00", "End": "2025-07-22T11:58:04.125957029-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:07.12701605-04:00", "End": "2025-07-22T11:58:07.230189926-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:10.23172262-04:00", "End": "2025-07-22T11:58:10.326737919-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}]}}
[I 2025-07-22 15:58:12.107 JupyterHub proxy:356] Removing user btf from proxy (/user/btf/)
[D 2025-07-22 15:58:12.108 JupyterHub proxy:925] Proxy: Fetching DELETE http://127.0.0.1:8001/api/routes/user/btf
15:58:12.111 [ConfigProxy] info: Removing route /user/btf
15:58:12.113 [ConfigProxy] info: 204 DELETE /api/routes/user/btf
[D 2025-07-22 15:58:12.114 JupyterHub user:1097] Stopping btf
[D 2025-07-22 15:58:12.114 JupyterHub dockerspawner:1034] Getting container 'example-datalab-btf'
[D 2025-07-22 15:58:12.120 JupyterHub dockerspawner:1017] Container 4e4314a status: {"Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 1574376, "ExitCode": 0, "Error": "", "StartedAt": "2025-07-22T15:57:37.350591935Z", "FinishedAt": "0001-01-01T00:00:00Z", "Health": {"Status": "unhealthy", "FailingStreak": 10, "Log": [{"Start": "2025-07-22T11:57:57.930585836-04:00", "End": "2025-07-22T11:57:57.974467745-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:00.975511789-04:00", "End": "2025-07-22T11:58:01.029303895-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:04.030299103-04:00", "End": "2025-07-22T11:58:04.125957029-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:07.12701605-04:00", "End": "2025-07-22T11:58:07.230189926-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}, {"Start": "2025-07-22T11:58:10.23172262-04:00", "End": "2025-07-22T11:58:10.326737919-04:00", "ExitCode": 1, "Output": "/bin/sh: 1: /etc/jupyter/docker_healthcheck.py: not found\n"}]}}
[I 2025-07-22 15:58:12.121 JupyterHub dockerspawner:1431] Stopping container example-datalab-btf (id: 4e4314a)
[I 2025-07-22 15:58:12.371 JupyterHub log:192] 302 GET /user/btf/lab/api/workspaces?1753199892304 -> /hub/user/btf/lab/api/workspaces?1753199892304 (@74.96.66.129) 1.90ms
[I 2025-07-22 15:58:12.376 JupyterHub log:192] 302 GET /user/btf/api/terminals?1753199892304 -> /hub/user/btf/api/terminals?1753199892304 (@74.96.66.129) 1.76ms
[W 2025-07-22 15:58:12.469 JupyterHub base:1637] Failing suspected API request to not-running server: /hub/user/btf/lab/api/workspaces
[W 2025-07-22 15:58:12.470 JupyterHub log:192] 424 GET /hub/user/btf/lab/api/workspaces?1753199892304 ([email protected]) 2.18ms
[W 2025-07-22 15:58:12.472 JupyterHub base:1637] Failing suspected API request to not-running server: /hub/user/btf/api/terminals
[W 2025-07-22 15:58:12.473 JupyterHub log:192] 424 GET /hub/user/btf/api/terminals?1753199892304 ([email protected]) 2.34ms
[I 2025-07-22 15:58:12.808 JupyterHub dockerspawner:1070] Removing container 4e4314a30c7cff35e4da5c3877efed7313334c274da88e66054c82487a8112e8
[D 2025-07-22 15:58:12.819 JupyterHub dockerspawner:1076] Already removing container: 4e4314a30c7cff35e4da5c3877efed7313334c274da88e66054c82487a8112e8
[D 2025-07-22 15:58:12.826 JupyterHub user:1119] Deleting oauth client jupyterhub-user-btf
[D 2025-07-22 15:58:12.832 JupyterHub user:1122] Finished stopping btf
[I 2025-07-22 15:58:12.838 JupyterHub base:1349] User btf server took 0.731 seconds to stop
[I 2025-07-22 15:58:12.838 JupyterHub log:192] 204 DELETE /hub/api/users/btf/server?_xsrf=[secret] ([email protected]) 770.92ms
[I 2025-07-22 15:58:13.607 JupyterHub log:192] 302 GET /user/btf/api/collaboration/room/JupyterLab:globalAwareness -> /hub/user/btf/api/collaboration/room/JupyterLab:globalAwareness (@74.96.66.129) 1.74ms
[I 2025-07-22 15:58:14.611 JupyterHub log:192] 302 GET /user/btf/api/collaboration/room/JupyterLab:globalAwareness -> /hub/user/btf/api/collaboration/room/JupyterLab:globalAwareness (@74.96.66.129) 1.75ms
[I 2025-07-22 15:58:15.329 JupyterHub login:46] User logged out: btf
[D 2025-07-22 15:58:15.349 JupyterHub _xsrf_utils:161] xsrf id mismatch b'1d0a96bfdea040a3beb2a11d070496fb:9648a06bb6524b5f8ad16d4974419dc1' != b'1d0a96bfdea040a3beb2a11d070496fb:4X9bEARTyEAREsSQTI9BuVcgp-p8xAqTKmmRULCBb2E='
[I 2025-07-22 15:58:15.350 JupyterHub _xsrf_utils:130] Setting new xsrf cookie for b'1d0a96bfdea040a3beb2a11d070496fb:4X9bEARTyEAREsSQTI9BuVcgp-p8xAqTKmmRULCBb2E=' {'path': '/hub/', 'max_age': 3600}
[I 2025-07-22 15:58:15.356 JupyterHub log:192] 200 GET /hub/logout (@74.96.66.129) 44.50ms
[I 2025-07-22 15:58:15.680 JupyterHub log:192] 302 GET /user/btf/api/collaboration/room/JupyterLab:globalAwareness -> /hub/user/btf/api/collaboration/room/JupyterLab:globalAwareness (@74.96.66.129) 1.70ms
[I 2025-07-22 15:58:16.780 JupyterHub log:192] 302 GET /user/btf/api/collaboration/room/JupyterLab:globalAwareness -> /hub/user/btf/api/collaboration/room/JupyterLab:globalAwareness (@74.96.66.129) 1.66ms
[I 2025-07-22 15:58:18.450 JupyterHub log:192] 302 GET /user/btf/api/collaboration/room/JupyterLab:globalAwareness -> /hub/user/btf/api/collaboration/room/JupyterLab:globalAwareness (@74.96.66.129) 1.68ms
I also generated a DEBUG log for Keycloak for this test, but it ran to over 18,000 lines and you didn’t ask for it, so I’m leaving it out for now, but I can also attach that here, if it helps.