Run Test: slices-bi-singlenode-login 2026-04-28 04:58:36.385607 CEST - Run: /usr/local/bin/uv pip install --upgrade slices-cli --extra-index-url=https://doc.slices-ri.eu/pypi/ 2026-04-28 04:58:39.706293 CEST - Run: slices --version 2026-04-28 04:58:39.920639 CEST - version: Slices CLI v2025.1.5 Slices CLI core v1.1.2 Slices CLI bi v2.0.2 Slices clientlib core v5.5.1 Slices clientlib bi v5.1.2 2026-04-28 04:58:39.920888 CEST - Run: slices pubkey list --format text 2026-04-28 04:58:40.435644 CEST - Pubkey already registered 2026-04-28 04:58:40.435865 CEST - Run: slices bi infrastructure list --format csv --all --refresh 2026-04-28 04:58:40.950699 CEST - Refreshed infrastructure list. Total: 22 entries. 2026-04-28 04:58:40.950805 CEST - Check List Flavors 2026-04-28 04:58:40.950973 CEST - Run: slices bi --infra gr-volos-bi-vm1 flavor list -f json 2026-04-28 04:58:41.966901 CEST - Check List DiskImages 2026-04-28 04:58:41.967116 CEST - Run: slices bi --infra gr-volos-bi-vm1 diskimage list -f json 2026-04-28 04:58:42.682430 CEST - Requesting resources 2026-04-28 04:58:42.682900 CEST - Cloudinit user data: #!/bin/sh echo "Hello World. The time is now $(date -R)!" | tee '/user_data_output.txt' 2026-04-28 04:58:42.683022 CEST - Run: slices bi --infra gr-volos-bi-vm1 create tst --image 'Ubuntu 24.04.3' --flavor tiny --duration 2h --experiment tst-b91ef6c7 --user-data /tmp/tmp6agrqxs0 2026-04-28 04:58:53.269269 CEST - Resource ID: r_gr-volos-bi-vm1_01kq90cye5e7hv1f1qx2pm5mzd 2026-04-28 04:58:53.269429 CEST - Waiting until resource ready 2026-04-28 04:58:55.269888 CEST - Run: slices bi --infra gr-volos-bi-vm1 list-resources --format json --experiment tst-b91ef6c7 tst 2026-04-28 04:58:56.135875 CEST - Status: IMAGING 2026-04-28 04:58:59.052434 CEST - Status: IMAGING 2026-04-28 04:59:02.018688 CEST - Status: IMAGING 2026-04-28 04:59:04.834898 CEST - Status: BOOTING 2026-04-28 04:59:07.651167 CEST - Status: BOOTING 2026-04-28 04:59:10.467420 CEST - Status: BOOTING 2026-04-28 04:59:13.283572 CEST - Status: BOOTING 2026-04-28 04:59:16.099236 CEST - Status: BOOTING 2026-04-28 04:59:18.915277 CEST - Status: BOOTING 2026-04-28 04:59:21.731235 CEST - Status: BOOTING 2026-04-28 04:59:24.547107 CEST - Status: BOOTING 2026-04-28 04:59:27.363100 CEST - Status: BOOTING 2026-04-28 04:59:30.178989 CEST - Status: BOOTING 2026-04-28 04:59:32.994933 CEST - Status: BOOTING 2026-04-28 04:59:35.810966 CEST - Status: BOOTING 2026-04-28 04:59:38.626945 CEST - Status: BOOTING 2026-04-28 04:59:41.443099 CEST - Status: BOOTING 2026-04-28 04:59:44.259072 CEST - Status: BOOTING 2026-04-28 04:59:47.075041 CEST - Status: BOOTING 2026-04-28 04:59:49.890868 CEST - Status: BOOTING 2026-04-28 04:59:52.706738 CEST - Status: BOOTING 2026-04-28 04:59:55.522602 CEST - Status: BOOTING 2026-04-28 04:59:58.338408 CEST - Status: BOOTING 2026-04-28 05:00:01.154327 CEST - Status: BOOTING 2026-04-28 05:00:04.572121 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/cdddbacc-4109-40ec-bc14-f12e88a4b296/step_WaitforUP_command_1.txt': /opt/slices-monitor-worker/slices-cli-venv/bin/slices bi --infra gr-volos-bi-vm1 list-resources --format json --experiment tst-b91ef6c7 tst 2026-04-28 05:00:04.572209 CEST - Destroying tst-b91ef6c7 tst 2026-04-28 05:00:04.572367 CEST - Run: slices bi --infra gr-volos-bi-vm1 destroy --experiment tst-b91ef6c7 tst 2026-04-28 05:00:05.991035 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/cdddbacc-4109-40ec-bc14-f12e88a4b296/step_Destroy_command_1.txt': /opt/slices-monitor-worker/slices-cli-venv/bin/slices bi --infra gr-volos-bi-vm1 destroy --experiment tst-b91ef6c7 tst 2026-04-28 05:00:05.991259 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/cdddbacc-4109-40ec-bc14-f12e88a4b296/destroy.txt': ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_transports/default.py:101 in map_httpcore_exceptions │ │ │ │ 98 │ if len(HTTPCORE_EXC_MAP) == 0: │ │ 99 │ │ HTTPCORE_EXC_MAP = _load_httpcore_exceptions() │ │ 100 │ try: │ │ ❱ 101 │ │ yield │ │ 102 │ except Exception as exc: │ │ 103 │ │ mapped_exc = None │ │ 104 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_transports/default.py:250 in handle_request │ │ │ │ 247 │ │ │ extensions=request.extensions, │ │ 248 │ │ ) │ │ 249 │ │ with map_httpcore_exceptions(): │ │ ❱ 250 │ │ │ resp = self._pool.handle_request(req) │ │ 251 │ │ │ │ 252 │ │ assert isinstance(resp.stream, typing.Iterable) │ │ 253 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection_pool.py:256 in handle_request │ │ │ │ 253 │ │ │ │ closing = self._assign_requests_to_connections() │ │ 254 │ │ │ │ │ 255 │ │ │ self._close_connections(closing) │ │ ❱ 256 │ │ │ raise exc from None │ │ 257 │ │ │ │ 258 │ │ # Return the response. Note that in this case we still have to │ │ manage │ │ 259 │ │ # the point at which the response is closed. │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection_pool.py:236 in handle_request │ │ │ │ 233 │ │ │ │ │ │ 234 │ │ │ │ try: │ │ 235 │ │ │ │ │ # Send the request on the assigned connection. │ │ ❱ 236 │ │ │ │ │ response = connection.handle_request( │ │ 237 │ │ │ │ │ │ pool_request.request │ │ 238 │ │ │ │ │ ) │ │ 239 │ │ │ │ except ConnectionNotAvailable: │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection.py:101 in handle_request │ │ │ │ 98 │ │ │ │ │ │ ) │ │ 99 │ │ except BaseException as exc: │ │ 100 │ │ │ self._connect_failed = True │ │ ❱ 101 │ │ │ raise exc │ │ 102 │ │ │ │ 103 │ │ return self._connection.handle_request(request) │ │ 104 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection.py:78 in handle_request │ │ │ │ 75 │ │ try: │ │ 76 │ │ │ with self._request_lock: │ │ 77 │ │ │ │ if self._connection is None: │ │ ❱ 78 │ │ │ │ │ stream = self._connect(request) │ │ 79 │ │ │ │ │ │ │ 80 │ │ │ │ │ ssl_object = stream.get_extra_info("ssl_object") │ │ 81 │ │ │ │ │ http2_negotiated = ( │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection.py:124 in _connect │ │ │ │ 121 │ │ │ │ │ │ "socket_options": self._socket_options, │ │ 122 │ │ │ │ │ } │ │ 123 │ │ │ │ │ with Trace("connect_tcp", logger, request, kwargs) │ │ as trace: │ │ ❱ 124 │ │ │ │ │ │ stream = │ │ self._network_backend.connect_tcp(**kwargs) │ │ 125 │ │ │ │ │ │ trace.return_value = stream │ │ 126 │ │ │ │ else: │ │ 127 │ │ │ │ │ kwargs = { │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_backends/sync.py:207 in connect_tcp │ │ │ │ 204 │ │ │ OSError: ConnectError, │ │ 205 │ │ } │ │ 206 │ │ │ │ ❱ 207 │ │ with map_exceptions(exc_map): │ │ 208 │ │ │ sock = socket.create_connection( │ │ 209 │ │ │ │ address, │ │ 210 │ │ │ │ timeout, │ │ │ │ /opt/uv-python-installs/cpython-3.14.1-linux-x86_64-gnu/lib/python3.14/conte │ │ xtlib.py:162 in __exit__ │ │ │ │ 159 │ │ │ │ # tell if we get the same exception back │ │ 160 │ │ │ │ value = typ() │ │ 161 │ │ │ try: │ │ ❱ 162 │ │ │ │ self.gen.throw(value) │ │ 163 │ │ │ except StopIteration as exc: │ │ 164 │ │ │ │ # Suppress StopIteration *unless* it's the same │ │ exception that │ │ 165 │ │ │ │ # was passed to throw(). This prevents a │ │ StopIteration │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_exceptions.py:14 in map_exceptions │ │ │ │ 11 │ except Exception as exc: # noqa: PIE786 │ │ 12 │ │ for from_exc, to_exc in map.items(): │ │ 13 │ │ │ if isinstance(exc, from_exc): │ │ ❱ 14 │ │ │ │ raise to_exc(exc) from exc │ │ 15 │ │ raise # pragma: nocover │ │ 16 │ │ 17 │ ╰──────────────────────────────────────────────────────────────────────────────╯ ConnectError: [Errno 111] Connection refused The above exception was the direct cause of the following exception: ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_clientlib_core/util/pagination.py:84 in __init__ │ │ │ │ 81 │ │ self._client = client │ │ 82 │ │ self._params = params │ │ 83 │ │ try: │ │ ❱ 84 │ │ │ response = self._client.get(url, params=params) │ │ 85 │ │ except HttpCoreConnectError as err: │ │ 86 │ │ │ raise ApiConnectError(url) from err │ │ 87 │ │ except HttpxConnectError as err: │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:1053 in get │ │ │ │ 1050 │ │ │ │ 1051 │ │ **Parameters**: See `httpx.request`. │ │ 1052 │ │ """ │ │ ❱ 1053 │ │ return self.request( │ │ 1054 │ │ │ "GET", │ │ 1055 │ │ │ url, │ │ 1056 │ │ │ params=params, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:825 in request │ │ │ │ 822 │ │ │ timeout=timeout, │ │ 823 │ │ │ extensions=extensions, │ │ 824 │ │ ) │ │ ❱ 825 │ │ return self.send(request, auth=auth, │ │ follow_redirects=follow_redirects) │ │ 826 │ │ │ 827 │ @contextmanager │ │ 828 │ def stream( │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:914 in send │ │ │ │ 911 │ │ │ │ 912 │ │ auth = self._build_request_auth(request, auth) │ │ 913 │ │ │ │ ❱ 914 │ │ response = self._send_handling_auth( │ │ 915 │ │ │ request, │ │ 916 │ │ │ auth=auth, │ │ 917 │ │ │ follow_redirects=follow_redirects, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:942 in _send_handling_auth │ │ │ │ 939 │ │ │ request = next(auth_flow) │ │ 940 │ │ │ │ │ 941 │ │ │ while True: │ │ ❱ 942 │ │ │ │ response = self._send_handling_redirects( │ │ 943 │ │ │ │ │ request, │ │ 944 │ │ │ │ │ follow_redirects=follow_redirects, │ │ 945 │ │ │ │ │ history=history, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:979 in _send_handling_redirects │ │ │ │ 976 │ │ │ for hook in self._event_hooks["request"]: │ │ 977 │ │ │ │ hook(request) │ │ 978 │ │ │ │ │ ❱ 979 │ │ │ response = self._send_single_request(request) │ │ 980 │ │ │ try: │ │ 981 │ │ │ │ for hook in self._event_hooks["response"]: │ │ 982 │ │ │ │ │ hook(response) │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:1014 in _send_single_request │ │ │ │ 1011 │ │ │ ) │ │ 1012 │ │ │ │ 1013 │ │ with request_context(request=request): │ │ ❱ 1014 │ │ │ response = transport.handle_request(request) │ │ 1015 │ │ │ │ 1016 │ │ assert isinstance(response.stream, SyncByteStream) │ │ 1017 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_transports/default.py:249 in handle_request │ │ │ │ 246 │ │ │ content=request.stream, │ │ 247 │ │ │ extensions=request.extensions, │ │ 248 │ │ ) │ │ ❱ 249 │ │ with map_httpcore_exceptions(): │ │ 250 │ │ │ resp = self._pool.handle_request(req) │ │ 251 │ │ │ │ 252 │ │ assert isinstance(resp.stream, typing.Iterable) │ │ │ │ /opt/uv-python-installs/cpython-3.14.1-linux-x86_64-gnu/lib/python3.14/conte │ │ xtlib.py:162 in __exit__ │ │ │ │ 159 │ │ │ │ # tell if we get the same exception back │ │ 160 │ │ │ │ value = typ() │ │ 161 │ │ │ try: │ │ ❱ 162 │ │ │ │ self.gen.throw(value) │ │ 163 │ │ │ except StopIteration as exc: │ │ 164 │ │ │ │ # Suppress StopIteration *unless* it's the same │ │ exception that │ │ 165 │ │ │ │ # was passed to throw(). This prevents a │ │ StopIteration │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_transports/default.py:118 in map_httpcore_exceptions │ │ │ │ 115 │ │ │ raise │ │ 116 │ │ │ │ 117 │ │ message = str(exc) │ │ ❱ 118 │ │ raise mapped_exc(message) from exc │ │ 119 │ │ 120 │ │ 121 class ResponseStream(SyncByteStream): │ ╰──────────────────────────────────────────────────────────────────────────────╯ ConnectError: [Errno 111] Connection refused The above exception was the direct cause of the following exception: ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_cli_bi/commands/bi_helpers.py:83 in wrapper_handle_some_exceptions │ │ │ │ 80 │ def wrapper_handle_some_exceptions(*args, **kwargs): │ │ 81 │ │ """Function wrapper for handle_some_exceptions.""" # noqa: │ │ D401 │ │ 82 │ │ try: │ │ ❱ 83 │ │ │ return func(*args, **kwargs) │ │ 84 │ │ except ApiResponseError as e: │ │ 85 │ │ │ if e._httpx_status_error.response.status_code in ( │ │ 86 │ │ │ │ 502, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_cli_bi/commands/bi.py:1248 in destroy_resource │ │ │ │ 1245 │ """ │ │ 1246 │ exp = bi_get_experiment(ctx, experiment) │ │ 1247 │ │ │ ❱ 1248 │ resources_to_delete: Collection[ComputeResource] = │ │ _get_requested_bi_resources( │ │ 1249 │ │ ctx, exp, resources, include_expired=False, │ │ include_terminated=False │ │ 1250 │ ) │ │ 1251 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_cli_bi/commands/bi.py:134 in _get_requested_bi_resources │ │ │ │ 131 │ │ │ ) │ │ 132 │ │ ) │ │ 133 │ │ │ ❱ 134 │ return [_get_resource(ctx, exp, resource_id) for resource_id in │ │ resources] │ │ 135 │ │ 136 │ │ 137 bi_app.add_typer( │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_cli_bi/commands/bi.py:999 in _get_resource │ │ │ │ 996 │ │ │ ) │ │ 997 │ │ │ raise typer.Exit(code=1) from err │ │ 998 │ │ │ ❱ 999 │ resources = │ │ ctx.obj.get_bi_resources_api_by_experiment(experiment).list() │ │ 1000 │ │ │ 1001 │ inactive_resource = None │ │ 1002 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_clientlib_bi/bi_resource.py:442 in list │ │ │ │ 439 │ │ if include_terminated is not None: │ │ 440 │ │ │ params["include_terminated"] = "true" if │ │ include_terminated else "false" │ │ 441 │ │ │ │ ❱ 442 │ │ return PagedCollection("resource", ComputeResource, │ │ self._base_path, self._client, params) │ │ 443 │ │ │ 444 │ def reboot(self, resource_id: str, type: Literal["SOFT", "HARD"]): │ │ 445 │ │ """Reboot the resource.""" │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_clientlib_core/util/pagination.py:88 in __init__ │ │ │ │ 85 │ │ except HttpCoreConnectError as err: │ │ 86 │ │ │ raise ApiConnectError(url) from err │ │ 87 │ │ except HttpxConnectError as err: │ │ ❱ 88 │ │ │ raise ApiConnectError(url) from err │ │ 89 │ │ try: │ │ 90 │ │ │ response.raise_for_status() │ │ 91 │ │ │ self._first_page = self._decoder.decode(response.content) │ ╰──────────────────────────────────────────────────────────────────────────────╯ ApiConnectError: Connection Error connection to /apis/bi.slices.eu/v1/projects/proj_account.ilabt.imec.be_5pzabws7n79ydsagfg3vnt g590/experiments/exp_expauth.ilabt.imec.be_01kq90cn9eepgrrrhvn8zad4xr/resources/ 2026-04-28 05:00:05.991394 CEST - Error in test step 'Destroy': "slices bi destroy" failed (return value is 1) 2026-04-28 05:00:05.991433 CEST - Wait 2s before retry 2026-04-28 05:00:09.359528 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/cdddbacc-4109-40ec-bc14-f12e88a4b296/step_DestroyRetry1_retry1_command_1.txt': /opt/slices-monitor-worker/slices-cli-venv/bin/slices bi --infra gr-volos-bi-vm1 destroy --experiment tst-b91ef6c7 tst 2026-04-28 05:00:09.359708 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/cdddbacc-4109-40ec-bc14-f12e88a4b296/destroy_retry1.txt': ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_transports/default.py:101 in map_httpcore_exceptions │ │ │ │ 98 │ if len(HTTPCORE_EXC_MAP) == 0: │ │ 99 │ │ HTTPCORE_EXC_MAP = _load_httpcore_exceptions() │ │ 100 │ try: │ │ ❱ 101 │ │ yield │ │ 102 │ except Exception as exc: │ │ 103 │ │ mapped_exc = None │ │ 104 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_transports/default.py:250 in handle_request │ │ │ │ 247 │ │ │ extensions=request.extensions, │ │ 248 │ │ ) │ │ 249 │ │ with map_httpcore_exceptions(): │ │ ❱ 250 │ │ │ resp = self._pool.handle_request(req) │ │ 251 │ │ │ │ 252 │ │ assert isinstance(resp.stream, typing.Iterable) │ │ 253 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection_pool.py:256 in handle_request │ │ │ │ 253 │ │ │ │ closing = self._assign_requests_to_connections() │ │ 254 │ │ │ │ │ 255 │ │ │ self._close_connections(closing) │ │ ❱ 256 │ │ │ raise exc from None │ │ 257 │ │ │ │ 258 │ │ # Return the response. Note that in this case we still have to │ │ manage │ │ 259 │ │ # the point at which the response is closed. │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection_pool.py:236 in handle_request │ │ │ │ 233 │ │ │ │ │ │ 234 │ │ │ │ try: │ │ 235 │ │ │ │ │ # Send the request on the assigned connection. │ │ ❱ 236 │ │ │ │ │ response = connection.handle_request( │ │ 237 │ │ │ │ │ │ pool_request.request │ │ 238 │ │ │ │ │ ) │ │ 239 │ │ │ │ except ConnectionNotAvailable: │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection.py:101 in handle_request │ │ │ │ 98 │ │ │ │ │ │ ) │ │ 99 │ │ except BaseException as exc: │ │ 100 │ │ │ self._connect_failed = True │ │ ❱ 101 │ │ │ raise exc │ │ 102 │ │ │ │ 103 │ │ return self._connection.handle_request(request) │ │ 104 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection.py:78 in handle_request │ │ │ │ 75 │ │ try: │ │ 76 │ │ │ with self._request_lock: │ │ 77 │ │ │ │ if self._connection is None: │ │ ❱ 78 │ │ │ │ │ stream = self._connect(request) │ │ 79 │ │ │ │ │ │ │ 80 │ │ │ │ │ ssl_object = stream.get_extra_info("ssl_object") │ │ 81 │ │ │ │ │ http2_negotiated = ( │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection.py:124 in _connect │ │ │ │ 121 │ │ │ │ │ │ "socket_options": self._socket_options, │ │ 122 │ │ │ │ │ } │ │ 123 │ │ │ │ │ with Trace("connect_tcp", logger, request, kwargs) │ │ as trace: │ │ ❱ 124 │ │ │ │ │ │ stream = │ │ self._network_backend.connect_tcp(**kwargs) │ │ 125 │ │ │ │ │ │ trace.return_value = stream │ │ 126 │ │ │ │ else: │ │ 127 │ │ │ │ │ kwargs = { │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_backends/sync.py:207 in connect_tcp │ │ │ │ 204 │ │ │ OSError: ConnectError, │ │ 205 │ │ } │ │ 206 │ │ │ │ ❱ 207 │ │ with map_exceptions(exc_map): │ │ 208 │ │ │ sock = socket.create_connection( │ │ 209 │ │ │ │ address, │ │ 210 │ │ │ │ timeout, │ │ │ │ /opt/uv-python-installs/cpython-3.14.1-linux-x86_64-gnu/lib/python3.14/conte │ │ xtlib.py:162 in __exit__ │ │ │ │ 159 │ │ │ │ # tell if we get the same exception back │ │ 160 │ │ │ │ value = typ() │ │ 161 │ │ │ try: │ │ ❱ 162 │ │ │ │ self.gen.throw(value) │ │ 163 │ │ │ except StopIteration as exc: │ │ 164 │ │ │ │ # Suppress StopIteration *unless* it's the same │ │ exception that │ │ 165 │ │ │ │ # was passed to throw(). This prevents a │ │ StopIteration │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_exceptions.py:14 in map_exceptions │ │ │ │ 11 │ except Exception as exc: # noqa: PIE786 │ │ 12 │ │ for from_exc, to_exc in map.items(): │ │ 13 │ │ │ if isinstance(exc, from_exc): │ │ ❱ 14 │ │ │ │ raise to_exc(exc) from exc │ │ 15 │ │ raise # pragma: nocover │ │ 16 │ │ 17 │ ╰──────────────────────────────────────────────────────────────────────────────╯ ConnectError: [Errno 111] Connection refused The above exception was the direct cause of the following exception: ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_clientlib_core/util/pagination.py:84 in __init__ │ │ │ │ 81 │ │ self._client = client │ │ 82 │ │ self._params = params │ │ 83 │ │ try: │ │ ❱ 84 │ │ │ response = self._client.get(url, params=params) │ │ 85 │ │ except HttpCoreConnectError as err: │ │ 86 │ │ │ raise ApiConnectError(url) from err │ │ 87 │ │ except HttpxConnectError as err: │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:1053 in get │ │ │ │ 1050 │ │ │ │ 1051 │ │ **Parameters**: See `httpx.request`. │ │ 1052 │ │ """ │ │ ❱ 1053 │ │ return self.request( │ │ 1054 │ │ │ "GET", │ │ 1055 │ │ │ url, │ │ 1056 │ │ │ params=params, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:825 in request │ │ │ │ 822 │ │ │ timeout=timeout, │ │ 823 │ │ │ extensions=extensions, │ │ 824 │ │ ) │ │ ❱ 825 │ │ return self.send(request, auth=auth, │ │ follow_redirects=follow_redirects) │ │ 826 │ │ │ 827 │ @contextmanager │ │ 828 │ def stream( │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:914 in send │ │ │ │ 911 │ │ │ │ 912 │ │ auth = self._build_request_auth(request, auth) │ │ 913 │ │ │ │ ❱ 914 │ │ response = self._send_handling_auth( │ │ 915 │ │ │ request, │ │ 916 │ │ │ auth=auth, │ │ 917 │ │ │ follow_redirects=follow_redirects, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:942 in _send_handling_auth │ │ │ │ 939 │ │ │ request = next(auth_flow) │ │ 940 │ │ │ │ │ 941 │ │ │ while True: │ │ ❱ 942 │ │ │ │ response = self._send_handling_redirects( │ │ 943 │ │ │ │ │ request, │ │ 944 │ │ │ │ │ follow_redirects=follow_redirects, │ │ 945 │ │ │ │ │ history=history, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:979 in _send_handling_redirects │ │ │ │ 976 │ │ │ for hook in self._event_hooks["request"]: │ │ 977 │ │ │ │ hook(request) │ │ 978 │ │ │ │ │ ❱ 979 │ │ │ response = self._send_single_request(request) │ │ 980 │ │ │ try: │ │ 981 │ │ │ │ for hook in self._event_hooks["response"]: │ │ 982 │ │ │ │ │ hook(response) │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:1014 in _send_single_request │ │ │ │ 1011 │ │ │ ) │ │ 1012 │ │ │ │ 1013 │ │ with request_context(request=request): │ │ ❱ 1014 │ │ │ response = transport.handle_request(request) │ │ 1015 │ │ │ │ 1016 │ │ assert isinstance(response.stream, SyncByteStream) │ │ 1017 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_transports/default.py:249 in handle_request │ │ │ │ 246 │ │ │ content=request.stream, │ │ 247 │ │ │ extensions=request.extensions, │ │ 248 │ │ ) │ │ ❱ 249 │ │ with map_httpcore_exceptions(): │ │ 250 │ │ │ resp = self._pool.handle_request(req) │ │ 251 │ │ │ │ 252 │ │ assert isinstance(resp.stream, typing.Iterable) │ │ │ │ /opt/uv-python-installs/cpython-3.14.1-linux-x86_64-gnu/lib/python3.14/conte │ │ xtlib.py:162 in __exit__ │ │ │ │ 159 │ │ │ │ # tell if we get the same exception back │ │ 160 │ │ │ │ value = typ() │ │ 161 │ │ │ try: │ │ ❱ 162 │ │ │ │ self.gen.throw(value) │ │ 163 │ │ │ except StopIteration as exc: │ │ 164 │ │ │ │ # Suppress StopIteration *unless* it's the same │ │ exception that │ │ 165 │ │ │ │ # was passed to throw(). This prevents a │ │ StopIteration │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_transports/default.py:118 in map_httpcore_exceptions │ │ │ │ 115 │ │ │ raise │ │ 116 │ │ │ │ 117 │ │ message = str(exc) │ │ ❱ 118 │ │ raise mapped_exc(message) from exc │ │ 119 │ │ 120 │ │ 121 class ResponseStream(SyncByteStream): │ ╰──────────────────────────────────────────────────────────────────────────────╯ ConnectError: [Errno 111] Connection refused The above exception was the direct cause of the following exception: ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_cli_bi/commands/bi_helpers.py:83 in wrapper_handle_some_exceptions │ │ │ │ 80 │ def wrapper_handle_some_exceptions(*args, **kwargs): │ │ 81 │ │ """Function wrapper for handle_some_exceptions.""" # noqa: │ │ D401 │ │ 82 │ │ try: │ │ ❱ 83 │ │ │ return func(*args, **kwargs) │ │ 84 │ │ except ApiResponseError as e: │ │ 85 │ │ │ if e._httpx_status_error.response.status_code in ( │ │ 86 │ │ │ │ 502, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_cli_bi/commands/bi.py:1248 in destroy_resource │ │ │ │ 1245 │ """ │ │ 1246 │ exp = bi_get_experiment(ctx, experiment) │ │ 1247 │ │ │ ❱ 1248 │ resources_to_delete: Collection[ComputeResource] = │ │ _get_requested_bi_resources( │ │ 1249 │ │ ctx, exp, resources, include_expired=False, │ │ include_terminated=False │ │ 1250 │ ) │ │ 1251 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_cli_bi/commands/bi.py:134 in _get_requested_bi_resources │ │ │ │ 131 │ │ │ ) │ │ 132 │ │ ) │ │ 133 │ │ │ ❱ 134 │ return [_get_resource(ctx, exp, resource_id) for resource_id in │ │ resources] │ │ 135 │ │ 136 │ │ 137 bi_app.add_typer( │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_cli_bi/commands/bi.py:999 in _get_resource │ │ │ │ 996 │ │ │ ) │ │ 997 │ │ │ raise typer.Exit(code=1) from err │ │ 998 │ │ │ ❱ 999 │ resources = │ │ ctx.obj.get_bi_resources_api_by_experiment(experiment).list() │ │ 1000 │ │ │ 1001 │ inactive_resource = None │ │ 1002 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_clientlib_bi/bi_resource.py:442 in list │ │ │ │ 439 │ │ if include_terminated is not None: │ │ 440 │ │ │ params["include_terminated"] = "true" if │ │ include_terminated else "false" │ │ 441 │ │ │ │ ❱ 442 │ │ return PagedCollection("resource", ComputeResource, │ │ self._base_path, self._client, params) │ │ 443 │ │ │ 444 │ def reboot(self, resource_id: str, type: Literal["SOFT", "HARD"]): │ │ 445 │ │ """Reboot the resource.""" │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_clientlib_core/util/pagination.py:88 in __init__ │ │ │ │ 85 │ │ except HttpCoreConnectError as err: │ │ 86 │ │ │ raise ApiConnectError(url) from err │ │ 87 │ │ except HttpxConnectError as err: │ │ ❱ 88 │ │ │ raise ApiConnectError(url) from err │ │ 89 │ │ try: │ │ 90 │ │ │ response.raise_for_status() │ │ 91 │ │ │ self._first_page = self._decoder.decode(response.content) │ ╰──────────────────────────────────────────────────────────────────────────────╯ ApiConnectError: Connection Error connection to /apis/bi.slices.eu/v1/projects/proj_account.ilabt.imec.be_5pzabws7n79ydsagfg3vnt g590/experiments/exp_expauth.ilabt.imec.be_01kq90cn9eepgrrrhvn8zad4xr/resources/ 2026-04-28 05:00:09.359779 CEST - Error in test step 'Destroy (Retry 1)': "slices bi destroy" failed (return value is 1) 2026-04-28 05:00:09.359807 CEST - Wait 2s before retry 2026-04-28 05:00:12.778383 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/cdddbacc-4109-40ec-bc14-f12e88a4b296/step_DestroyRetry2_retry2_command_1.txt': /opt/slices-monitor-worker/slices-cli-venv/bin/slices bi --infra gr-volos-bi-vm1 destroy --experiment tst-b91ef6c7 tst 2026-04-28 05:00:12.778559 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/cdddbacc-4109-40ec-bc14-f12e88a4b296/destroy_retry2.txt': ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_transports/default.py:101 in map_httpcore_exceptions │ │ │ │ 98 │ if len(HTTPCORE_EXC_MAP) == 0: │ │ 99 │ │ HTTPCORE_EXC_MAP = _load_httpcore_exceptions() │ │ 100 │ try: │ │ ❱ 101 │ │ yield │ │ 102 │ except Exception as exc: │ │ 103 │ │ mapped_exc = None │ │ 104 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_transports/default.py:250 in handle_request │ │ │ │ 247 │ │ │ extensions=request.extensions, │ │ 248 │ │ ) │ │ 249 │ │ with map_httpcore_exceptions(): │ │ ❱ 250 │ │ │ resp = self._pool.handle_request(req) │ │ 251 │ │ │ │ 252 │ │ assert isinstance(resp.stream, typing.Iterable) │ │ 253 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection_pool.py:256 in handle_request │ │ │ │ 253 │ │ │ │ closing = self._assign_requests_to_connections() │ │ 254 │ │ │ │ │ 255 │ │ │ self._close_connections(closing) │ │ ❱ 256 │ │ │ raise exc from None │ │ 257 │ │ │ │ 258 │ │ # Return the response. Note that in this case we still have to │ │ manage │ │ 259 │ │ # the point at which the response is closed. │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection_pool.py:236 in handle_request │ │ │ │ 233 │ │ │ │ │ │ 234 │ │ │ │ try: │ │ 235 │ │ │ │ │ # Send the request on the assigned connection. │ │ ❱ 236 │ │ │ │ │ response = connection.handle_request( │ │ 237 │ │ │ │ │ │ pool_request.request │ │ 238 │ │ │ │ │ ) │ │ 239 │ │ │ │ except ConnectionNotAvailable: │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection.py:101 in handle_request │ │ │ │ 98 │ │ │ │ │ │ ) │ │ 99 │ │ except BaseException as exc: │ │ 100 │ │ │ self._connect_failed = True │ │ ❱ 101 │ │ │ raise exc │ │ 102 │ │ │ │ 103 │ │ return self._connection.handle_request(request) │ │ 104 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection.py:78 in handle_request │ │ │ │ 75 │ │ try: │ │ 76 │ │ │ with self._request_lock: │ │ 77 │ │ │ │ if self._connection is None: │ │ ❱ 78 │ │ │ │ │ stream = self._connect(request) │ │ 79 │ │ │ │ │ │ │ 80 │ │ │ │ │ ssl_object = stream.get_extra_info("ssl_object") │ │ 81 │ │ │ │ │ http2_negotiated = ( │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_sync/connection.py:124 in _connect │ │ │ │ 121 │ │ │ │ │ │ "socket_options": self._socket_options, │ │ 122 │ │ │ │ │ } │ │ 123 │ │ │ │ │ with Trace("connect_tcp", logger, request, kwargs) │ │ as trace: │ │ ❱ 124 │ │ │ │ │ │ stream = │ │ self._network_backend.connect_tcp(**kwargs) │ │ 125 │ │ │ │ │ │ trace.return_value = stream │ │ 126 │ │ │ │ else: │ │ 127 │ │ │ │ │ kwargs = { │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_backends/sync.py:207 in connect_tcp │ │ │ │ 204 │ │ │ OSError: ConnectError, │ │ 205 │ │ } │ │ 206 │ │ │ │ ❱ 207 │ │ with map_exceptions(exc_map): │ │ 208 │ │ │ sock = socket.create_connection( │ │ 209 │ │ │ │ address, │ │ 210 │ │ │ │ timeout, │ │ │ │ /opt/uv-python-installs/cpython-3.14.1-linux-x86_64-gnu/lib/python3.14/conte │ │ xtlib.py:162 in __exit__ │ │ │ │ 159 │ │ │ │ # tell if we get the same exception back │ │ 160 │ │ │ │ value = typ() │ │ 161 │ │ │ try: │ │ ❱ 162 │ │ │ │ self.gen.throw(value) │ │ 163 │ │ │ except StopIteration as exc: │ │ 164 │ │ │ │ # Suppress StopIteration *unless* it's the same │ │ exception that │ │ 165 │ │ │ │ # was passed to throw(). This prevents a │ │ StopIteration │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ core/_exceptions.py:14 in map_exceptions │ │ │ │ 11 │ except Exception as exc: # noqa: PIE786 │ │ 12 │ │ for from_exc, to_exc in map.items(): │ │ 13 │ │ │ if isinstance(exc, from_exc): │ │ ❱ 14 │ │ │ │ raise to_exc(exc) from exc │ │ 15 │ │ raise # pragma: nocover │ │ 16 │ │ 17 │ ╰──────────────────────────────────────────────────────────────────────────────╯ ConnectError: [Errno 111] Connection refused The above exception was the direct cause of the following exception: ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_clientlib_core/util/pagination.py:84 in __init__ │ │ │ │ 81 │ │ self._client = client │ │ 82 │ │ self._params = params │ │ 83 │ │ try: │ │ ❱ 84 │ │ │ response = self._client.get(url, params=params) │ │ 85 │ │ except HttpCoreConnectError as err: │ │ 86 │ │ │ raise ApiConnectError(url) from err │ │ 87 │ │ except HttpxConnectError as err: │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:1053 in get │ │ │ │ 1050 │ │ │ │ 1051 │ │ **Parameters**: See `httpx.request`. │ │ 1052 │ │ """ │ │ ❱ 1053 │ │ return self.request( │ │ 1054 │ │ │ "GET", │ │ 1055 │ │ │ url, │ │ 1056 │ │ │ params=params, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:825 in request │ │ │ │ 822 │ │ │ timeout=timeout, │ │ 823 │ │ │ extensions=extensions, │ │ 824 │ │ ) │ │ ❱ 825 │ │ return self.send(request, auth=auth, │ │ follow_redirects=follow_redirects) │ │ 826 │ │ │ 827 │ @contextmanager │ │ 828 │ def stream( │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:914 in send │ │ │ │ 911 │ │ │ │ 912 │ │ auth = self._build_request_auth(request, auth) │ │ 913 │ │ │ │ ❱ 914 │ │ response = self._send_handling_auth( │ │ 915 │ │ │ request, │ │ 916 │ │ │ auth=auth, │ │ 917 │ │ │ follow_redirects=follow_redirects, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:942 in _send_handling_auth │ │ │ │ 939 │ │ │ request = next(auth_flow) │ │ 940 │ │ │ │ │ 941 │ │ │ while True: │ │ ❱ 942 │ │ │ │ response = self._send_handling_redirects( │ │ 943 │ │ │ │ │ request, │ │ 944 │ │ │ │ │ follow_redirects=follow_redirects, │ │ 945 │ │ │ │ │ history=history, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:979 in _send_handling_redirects │ │ │ │ 976 │ │ │ for hook in self._event_hooks["request"]: │ │ 977 │ │ │ │ hook(request) │ │ 978 │ │ │ │ │ ❱ 979 │ │ │ response = self._send_single_request(request) │ │ 980 │ │ │ try: │ │ 981 │ │ │ │ for hook in self._event_hooks["response"]: │ │ 982 │ │ │ │ │ hook(response) │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_client.py:1014 in _send_single_request │ │ │ │ 1011 │ │ │ ) │ │ 1012 │ │ │ │ 1013 │ │ with request_context(request=request): │ │ ❱ 1014 │ │ │ response = transport.handle_request(request) │ │ 1015 │ │ │ │ 1016 │ │ assert isinstance(response.stream, SyncByteStream) │ │ 1017 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_transports/default.py:249 in handle_request │ │ │ │ 246 │ │ │ content=request.stream, │ │ 247 │ │ │ extensions=request.extensions, │ │ 248 │ │ ) │ │ ❱ 249 │ │ with map_httpcore_exceptions(): │ │ 250 │ │ │ resp = self._pool.handle_request(req) │ │ 251 │ │ │ │ 252 │ │ assert isinstance(resp.stream, typing.Iterable) │ │ │ │ /opt/uv-python-installs/cpython-3.14.1-linux-x86_64-gnu/lib/python3.14/conte │ │ xtlib.py:162 in __exit__ │ │ │ │ 159 │ │ │ │ # tell if we get the same exception back │ │ 160 │ │ │ │ value = typ() │ │ 161 │ │ │ try: │ │ ❱ 162 │ │ │ │ self.gen.throw(value) │ │ 163 │ │ │ except StopIteration as exc: │ │ 164 │ │ │ │ # Suppress StopIteration *unless* it's the same │ │ exception that │ │ 165 │ │ │ │ # was passed to throw(). This prevents a │ │ StopIteration │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/http │ │ x/_transports/default.py:118 in map_httpcore_exceptions │ │ │ │ 115 │ │ │ raise │ │ 116 │ │ │ │ 117 │ │ message = str(exc) │ │ ❱ 118 │ │ raise mapped_exc(message) from exc │ │ 119 │ │ 120 │ │ 121 class ResponseStream(SyncByteStream): │ ╰──────────────────────────────────────────────────────────────────────────────╯ ConnectError: [Errno 111] Connection refused The above exception was the direct cause of the following exception: ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_cli_bi/commands/bi_helpers.py:83 in wrapper_handle_some_exceptions │ │ │ │ 80 │ def wrapper_handle_some_exceptions(*args, **kwargs): │ │ 81 │ │ """Function wrapper for handle_some_exceptions.""" # noqa: │ │ D401 │ │ 82 │ │ try: │ │ ❱ 83 │ │ │ return func(*args, **kwargs) │ │ 84 │ │ except ApiResponseError as e: │ │ 85 │ │ │ if e._httpx_status_error.response.status_code in ( │ │ 86 │ │ │ │ 502, │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_cli_bi/commands/bi.py:1248 in destroy_resource │ │ │ │ 1245 │ """ │ │ 1246 │ exp = bi_get_experiment(ctx, experiment) │ │ 1247 │ │ │ ❱ 1248 │ resources_to_delete: Collection[ComputeResource] = │ │ _get_requested_bi_resources( │ │ 1249 │ │ ctx, exp, resources, include_expired=False, │ │ include_terminated=False │ │ 1250 │ ) │ │ 1251 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_cli_bi/commands/bi.py:134 in _get_requested_bi_resources │ │ │ │ 131 │ │ │ ) │ │ 132 │ │ ) │ │ 133 │ │ │ ❱ 134 │ return [_get_resource(ctx, exp, resource_id) for resource_id in │ │ resources] │ │ 135 │ │ 136 │ │ 137 bi_app.add_typer( │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_cli_bi/commands/bi.py:999 in _get_resource │ │ │ │ 996 │ │ │ ) │ │ 997 │ │ │ raise typer.Exit(code=1) from err │ │ 998 │ │ │ ❱ 999 │ resources = │ │ ctx.obj.get_bi_resources_api_by_experiment(experiment).list() │ │ 1000 │ │ │ 1001 │ inactive_resource = None │ │ 1002 │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_clientlib_bi/bi_resource.py:442 in list │ │ │ │ 439 │ │ if include_terminated is not None: │ │ 440 │ │ │ params["include_terminated"] = "true" if │ │ include_terminated else "false" │ │ 441 │ │ │ │ ❱ 442 │ │ return PagedCollection("resource", ComputeResource, │ │ self._base_path, self._client, params) │ │ 443 │ │ │ 444 │ def reboot(self, resource_id: str, type: Literal["SOFT", "HARD"]): │ │ 445 │ │ """Reboot the resource.""" │ │ │ │ /opt/slices-monitor-worker/slices-cli-venv/lib/python3.14/site-packages/slic │ │ es_clientlib_core/util/pagination.py:88 in __init__ │ │ │ │ 85 │ │ except HttpCoreConnectError as err: │ │ 86 │ │ │ raise ApiConnectError(url) from err │ │ 87 │ │ except HttpxConnectError as err: │ │ ❱ 88 │ │ │ raise ApiConnectError(url) from err │ │ 89 │ │ try: │ │ 90 │ │ │ response.raise_for_status() │ │ 91 │ │ │ self._first_page = self._decoder.decode(response.content) │ ╰──────────────────────────────────────────────────────────────────────────────╯ ApiConnectError: Connection Error connection to /apis/bi.slices.eu/v1/projects/proj_account.ilabt.imec.be_5pzabws7n79ydsagfg3vnt g590/experiments/exp_expauth.ilabt.imec.be_01kq90cn9eepgrrrhvn8zad4xr/resources/ 2026-04-28 05:00:12.778628 CEST - Error in test step 'Destroy (Retry 2)': "slices bi destroy" failed (return value is 1) 2026-04-28 05:00:12.778653 CEST - Wait 2s before retry 2026-04-28 05:00:22.811939 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/cdddbacc-4109-40ec-bc14-f12e88a4b296/step_DestroyRetry3_retry3_command_1.txt': /opt/slices-monitor-worker/slices-cli-venv/bin/slices bi --infra gr-volos-bi-vm1 destroy --experiment tst-b91ef6c7 tst 2026-04-28 05:00:22.812031 CEST - Content of log file '/opt/slices-monitor-worker/slices_monitor_tests/cdddbacc-4109-40ec-bc14-f12e88a4b296/destroy_retry3.txt': There was a connection problem. The service might be down. ⚡ Details: ServiceException (for GET https://slices-bi.nitlab.uth.gr/apis/bi.slices.eu/v1/projects/proj_account.ilabt .imec.be_5pzabws7n79ydsagfg3vntg590/experiments/exp_expauth.ilabt.imec.be_01kq90 cn9eepgrrrhvn8zad4xr/resources/): 502 Bad Gateway

502 Bad Gateway


nginx/1.24.0 (Ubuntu)
2026-04-28 05:00:22.812055 CEST - Error in test step 'Destroy (Retry 3)': "slices bi destroy" failed (return value is 1) ERROR:slices_monitor_test_runner.main:Test Failed with exception Traceback (most recent call last): File "/opt/slices-monitor-worker/src/slices-monitor-test-runner/src/slices_monitor_test_runner/test_runners/test_runner_base.py", line 156, in step yield File "/opt/slices-monitor-worker/src/slices-monitor-test-runner/src/slices_monitor_test_runner/test_runners/slices_singlenode_login.py", line 1328, in run self._wait_for_up() ~~~~~~~~~~~~~~~~~^^ File "/opt/slices-monitor-worker/src/slices-monitor-test-runner/src/slices_monitor_test_runner/test_runners/slices_singlenode_login.py", line 516, in _wait_for_up raise SlicesTestFailure('"slices bi list-resources" failed') slices_monitor_test_runner.exceptions.SlicesTestFailure: "slices bi list-resources" failed During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/opt/slices-monitor-worker/src/slices-monitor-test-runner/src/slices_monitor_test_runner/main.py", line 72, in run_test return _get_test_by_test_spec(steps, test_dir, test_spec).run() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/opt/slices-monitor-worker/src/slices-monitor-test-runner/src/slices_monitor_test_runner/test_runners/slices_singlenode_login.py", line 1327, in run with self.step("Wait for UP", description="Waiting until the resource is in the UP state"): ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/uv-python-installs/cpython-3.14.1-linux-x86_64-gnu/lib/python3.14/contextlib.py", line 162, in __exit__ self.gen.throw(value) ~~~~~~~~~~~~~~^^^^^^^ File "/opt/slices-monitor-worker/src/slices-monitor-test-runner/src/slices_monitor_test_runner/test_runners/test_runner_base.py", line 170, in step _dump_log_files(self.cur_step.log_files) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/slices-monitor-worker/src/slices-monitor-test-runner/src/slices_monitor_test_runner/test_runners/test_runner_base.py", line 151, in _dump_log_files with Path(log_file).open("r") as log_f: ~~~~~~~~~~~~~~~~~~~^^^^^ File "/opt/uv-python-installs/cpython-3.14.1-linux-x86_64-gnu/lib/python3.14/pathlib/__init__.py", line 771, in open return io.open(self, mode, buffering, encoding, errors, newline) ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/opt/slices-monitor-worker/slices_monitor_tests/cdddbacc-4109-40ec-bc14-f12e88a4b296/list-resources_json.txt'