Using CPython 3.14.6 interpreter at: /usr/local/bin/python3 Creating virtual environment at: .venv Resolved 32 packages in 4.70s Building slices-monitor-test-runner @ file:///app Built slices-monitor-test-runner @ file:///app Prepared 1 package in 339ms warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance. If the cache and target directories are on different filesystems, hardlinking may not be supported. If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning. Installed 32 packages in 664ms + annotated-types==0.8.0 + anyio==4.14.2 + authlib==1.7.2 + bcrypt==5.0.0 + certifi==2026.7.22 + cffi==2.1.0 + cryptography==50.0.0 + dnspython==2.8.0 + h11==0.16.0 + httpcore==1.0.9 + httpx==0.28.1 + httpx-oauth==0.17.0 + idna==3.18 + invoke==3.0.3 + joserfc==1.7.4 + msgspec==0.21.1 + packaging==26.2 + paramiko==4.0.0 + pycparser==3.0 + pydantic==2.13.4 + pydantic-core==2.46.4 + pyjwt==2.13.0 + pynacl==1.6.2 + pytz==2026.3.post1 + pyyaml==6.0.3 + slices-clientlib-bi==5.1.2 + slices-clientlib-core==5.6.0 + slices-monitor-test-runner==0.1.dev192+gcac2d3fe6 (from file:///app) + tomli-w==1.2.0 + tomlkit==0.15.1 + typing-extensions==4.16.0 + typing-inspection==0.4.2 Run Test: slices-account-health-check 2026-07-31 15:14:15.121322 UTC - Check DNS 2026-07-31 15:14:15.122555 UTC - Checking system DNS for API host portal.slices-ri.eu 2026-07-31 15:14:15.122898 UTC - Resolved to 193.191.148.163 2026-07-31 15:14:15.122953 UTC - Checking direct DNS for API host portal.slices-ri.eu using DNS server 8.8.8.8 2026-07-31 15:14:15.130984 UTC - Resolved to 193.191.148.163 2026-07-31 15:14:15.131104 UTC - Checking direct DNS for API host portal.slices-ri.eu using DNS server 1.1.1.1 2026-07-31 15:14:15.135701 UTC - Resolved to 193.191.148.163 2026-07-31 15:14:15.135872 UTC - Checking system DNS for API host portal.slices-ri.eu 2026-07-31 15:14:15.136284 UTC - Resolved to 193.191.148.163 2026-07-31 15:14:15.136376 UTC - Checking direct DNS for API host portal.slices-ri.eu using DNS server 8.8.8.8 2026-07-31 15:14:15.141552 UTC - Resolved to 193.191.148.163 2026-07-31 15:14:15.141673 UTC - Checking direct DNS for API host portal.slices-ri.eu using DNS server 1.1.1.1 2026-07-31 15:14:15.145830 UTC - Resolved to 193.191.148.163 2026-07-31 15:14:15.145972 UTC - Check Basic Connectivity 2026-07-31 15:14:15.146758 UTC - Checking basic connectivity to user API 2026-07-31 15:14:15.146817 UTC - Connecting to: https://portal.slices-ri.eu 2026-07-31 15:14:15.151404 UTC - HTTP connection works. HTTP response code: 200 2026-07-31 15:14:15.151457 UTC - Checking basic connectivity to project API 2026-07-31 15:14:15.151477 UTC - Connecting to: https://portal.slices-ri.eu 2026-07-31 15:14:15.154898 UTC - HTTP connection works. HTTP response code: 200 2026-07-31 15:14:15.154963 UTC - Check Check Projects 2026-07-31 15:14:15.171836 UTC - Received 8 projects 2026-07-31 15:14:15.171965 UTC - Check Check Projects 2026-07-31 15:14:15.194062 UTC - Received 3 project members 2026-07-31 15:14:15.194166 UTC - Check Token Exchange 2026-07-31 15:14:15.231823 UTC - Received Access Token that expires in 3600 seconds 2026-07-31 15:14:15.231962 UTC - Check Requesting ID Token 2026-07-31 15:14:15.296198 UTC - Received ID Token of 1011 chars 2026-07-31 15:14:15.296340 UTC - Check Refresh Access Token 2026-07-31 15:14:15.613032 UTC - Error in test step 'Refresh Access Token': invalid_grant: ERROR:slices_monitor_test_runner.main:Test Failed with exception Traceback (most recent call last): File "/app/src/slices_monitor_test_runner/test_runners/test_runner_base.py", line 175, in step yield File "/app/src/slices_monitor_test_runner/test_runners/slices_account_health_check.py", line 219, in run self._check_refresh_token() ~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/app/src/slices_monitor_test_runner/test_runners/slices_account_health_check.py", line 97, in _check_refresh_token refreshed_token: OAuthToken = refresh_auth_token(refresh_token) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.14/site-packages/slices_clientlib_core/base/auth.py", line 99, in refresh_auth_token new_auth_token = RefreshFlow().perform_refresh(refresh_token) File "/app/.venv/lib/python3.14/site-packages/slices_clientlib_core/oauth2/flow.py", line 182, in perform_refresh _get_oauth2_client().refresh_token(settings.token_endpoint_url, refresh_token), OAuthToken ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.14/site-packages/authlib/oauth2/client.py", line 292, in refresh_token return self._refresh_token( ~~~~~~~~~~~~~~~~~~~^ url, ^^^^ ...<4 lines>... **session_kwargs, ^^^^^^^^^^^^^^^^^ ) ^ File "/app/.venv/lib/python3.14/site-packages/authlib/oauth2/client.py", line 455, in _refresh_token token = self.parse_response_token(resp) File "/app/.venv/lib/python3.14/site-packages/authlib/oauth2/client.py", line 420, in parse_response_token raise self.oauth_error_class( error=token["error"], description=token.get("error_description") ) authlib.integrations.base_client.errors.OAuthError: invalid_grant: The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/app/src/slices_monitor_test_runner/main.py", line 76, in run_test return _get_test_by_test_spec(steps, test_dir, test_spec).run() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/app/src/slices_monitor_test_runner/test_runners/slices_account_health_check.py", line 215, in run with self.step( ~~~~~~~~~^ "Refresh Access Token", ^^^^^^^^^^^^^^^^^^^^^^^ description="Requesting new access token via refresh token using Slices Account API", ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ): ^ File "/usr/local/lib/python3.14/contextlib.py", line 162, in __exit__ self.gen.throw(value) ~~~~~~~~~~~~~~^^^^^^^ File "/app/src/slices_monitor_test_runner/test_runners/test_runner_base.py", line 219, in step raise SlicesTestFailure(f"Step {name!r} {retry_suffix2} failed") from e slices_monitor_test_runner.exceptions.SlicesTestFailure: Step 'Refresh Access Token' failed