===== app-contract-nightly-n5btq-archive-logs-pod.log ===== [pod/app-contract-nightly-n5btq-archive-logs-pod/prepare] 2026-08-02T22:17:32.736889676-05:00 2026/08/03 03:17:32 Entrypoint initialization [pod/app-contract-nightly-n5btq-archive-logs-pod/place-scripts] 2026-08-02T22:17:33.231397752-05:00 2026/08/03 03:17:33 Decoded script /tekton/scripts/script-0-v8bcl [pod/app-contract-nightly-n5btq-archive-logs-pod/place-scripts] 2026-08-02T22:17:33.263741864-05:00 2026/08/03 03:17:33 Decoded script /tekton/scripts/script-1-wzcg7 [pod/app-contract-nightly-n5btq-archive-logs-pod/step-collect-logs] 2026-08-02T22:17:36.769207264-05:00 ==> collecting pod logs for PipelineRun=app-contract-nightly-n5btq ===== app-contract-nightly-n5btq-contract-pod.log ===== [pod/app-contract-nightly-n5btq-contract-pod/prepare] 2026-08-02T22:17:03.437583633-05:00 2026/08/03 03:17:03 Entrypoint initialization [pod/app-contract-nightly-n5btq-contract-pod/place-scripts] 2026-08-02T22:17:03.907068804-05:00 2026/08/03 03:17:03 Decoded script /tekton/scripts/script-0-rkmcw [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:07.402299093-05:00 resolved deployed image: registry.storeminder.ai/storeminder/app:003dc2f197336849905987c1b43df01cc1ba912c [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:07.526637531-05:00 job.batch/app-contract-20260803-031707 created [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.293918248-05:00 ----- contract Job logs (app-contract-20260803-031707) ----- [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961372959-05:00 Installing pytest (runtime image has no test deps)… [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961397739-05:00 Running LIVE read-only contract + parity suite: tests/contract [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961403349-05:00 ============================= test session starts ============================== [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961407599-05:00 platform linux -- Python 3.12.7, pytest-9.1.1, pluggy-1.6.0 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961411689-05:00 django: version: 5.2.16, settings: config.settings (from env) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961416319-05:00 rootdir: /app [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961420949-05:00 configfile: pytest.ini [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961425259-05:00 plugins: django-4.12.0, cov-7.1.0, anyio-4.14.2 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961429189-05:00 collected 31 items [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961432959-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961437049-05:00 tests/contract/test_fixture_parity.py .FFsss [ 19%] [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961441429-05:00 tests/contract/test_grafana_contract.py sss [ 29%] [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961445339-05:00 tests/contract/test_headscale_contract.py ... [ 38%] [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961449359-05:00 tests/contract/test_mender_contract.py ssss [ 51%] [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961464559-05:00 tests/contract/test_rundeck_contract.py FFF [ 61%] [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961468589-05:00 tests/contract/test_shape_selfcheck.py ............ [100%] [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961472369-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961476329-05:00 =================================== FAILURES =================================== [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961480249-05:00 ________________________ test_parity_rundeck_execution _________________________ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961484029-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961488479-05:00 @contextlib.contextmanager [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961492549-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961496639-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961500529-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961507009-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961510959-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961514919-05:00 > yield [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961518669-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961522619-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961526959-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961531899-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961535819-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961549769-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961555329-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961559189-05:00 raise exc from None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961563089-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961567119-05:00 response = connection.handle_request( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961571069-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961574929-05:00 raise exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961592029-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961594929-05:00 stream = self._connect(request) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961597548-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961600248-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961602868-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961605538-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961608178-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961610848-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961613448-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961616158-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961618798-05:00 self.gen.throw(value) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961621468-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961623998-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961627458-05:00 map = {: , : } [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961631648-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961634408-05:00 @contextlib.contextmanager [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961637108-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961639738-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961642348-05:00 yield [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961645008-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961647728-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961650348-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961653038-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961655828-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961658388-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961661068-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961663598-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961666218-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961668748-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961671318-05:00 self = [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961674048-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961676798-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961679338-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961682018-05:00 def _request( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961684618-05:00 self, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961687438-05:00 method: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961690068-05:00 path: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961692688-05:00 *, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961695378-05:00 retry: bool = True, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961697958-05:00 **kwargs: Any, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961700538-05:00 ) -> httpx.Response: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961703178-05:00 client = self._ensure_client() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961705868-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961709018-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961711648-05:00 for attempt in range(attempts): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961714258-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961716958-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961719558-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961732178-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961734958-05:00 integrations/base.py:135: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961744298-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961748908-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961751708-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961754408-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961757828-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961760518-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961763188-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961765788-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961768418-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961771038-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961773718-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961776428-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961779248-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961781848-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961784528-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961787198-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961789868-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961792518-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961795118-05:00 self.gen.throw(value) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961797798-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961800318-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961802958-05:00 @contextlib.contextmanager [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961805648-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961808298-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961810968-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961813638-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961816248-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961818908-05:00 yield [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961821568-05:00 except Exception as exc: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961824248-05:00 mapped_exc = None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961826908-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961829528-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961832158-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961834758-05:00 continue [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961837438-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961840167-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961842817-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961845437-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961848087-05:00 mapped_exc = to_exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961851377-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961853977-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961861377-05:00 raise [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961864187-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961866947-05:00 message = str(exc) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961869607-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961872197-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961874707-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961880387-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961882937-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961885577-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961888067-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961890677-05:00 def test_parity_rundeck_execution(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961893367-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961897197-05:00 ver = rc.config.extra.get("api_version", "48") [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961899847-05:00 proj = rc.config.extra.get("project", "storeminder") [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961902567-05:00 > execs = (_live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) or {}).get("executions") or [] [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961905237-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961907767-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961910367-05:00 tests/contract/test_fixture_parity.py:73: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961913027-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961915687-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961918527-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961921487-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961924077-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961926657-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961929277-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961931897-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961934467-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961937287-05:00 self = [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961939927-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961942557-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961945097-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961947677-05:00 def _request( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961950327-05:00 self, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961952957-05:00 method: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961955657-05:00 path: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961958717-05:00 *, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961961367-05:00 retry: bool = True, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961963967-05:00 **kwargs: Any, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961966547-05:00 ) -> httpx.Response: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961969167-05:00 client = self._ensure_client() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961971767-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961974367-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961976997-05:00 for attempt in range(attempts): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961979617-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.961982257-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962012047-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962016107-05:00 last_exc = exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962025647-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962032217-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962035027-05:00 continue [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962037707-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962040347-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962042987-05:00 ) from exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962046257-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962048757-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962051507-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962054187-05:00 __________________________ test_parity_rundeck_output __________________________ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962056737-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962059347-05:00 @contextlib.contextmanager [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962061987-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962064617-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962068557-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962071237-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962073887-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962076577-05:00 > yield [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962079107-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962081716-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962084316-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962087026-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962089646-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962092276-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962094976-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962097626-05:00 raise exc from None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962100406-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962103126-05:00 response = connection.handle_request( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962105766-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962108396-05:00 raise exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962111056-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962113706-05:00 stream = self._connect(request) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962116336-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962118956-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962121626-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962124266-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962126866-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962129486-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962132106-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962134766-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962137386-05:00 self.gen.throw(value) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962140036-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962147166-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962149946-05:00 map = {: , : } [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962152496-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962155186-05:00 @contextlib.contextmanager [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962157876-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962160606-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962163216-05:00 yield [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962165846-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962168526-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962171226-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962173836-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962176486-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962179006-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962181616-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962184166-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962186826-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962189376-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962192046-05:00 self = [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962194696-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962197366-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962199886-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962202476-05:00 def _request( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962205126-05:00 self, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962207746-05:00 method: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962210416-05:00 path: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962213036-05:00 *, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962215626-05:00 retry: bool = True, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962218216-05:00 **kwargs: Any, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962220806-05:00 ) -> httpx.Response: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962223406-05:00 client = self._ensure_client() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962226146-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962228796-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962231466-05:00 for attempt in range(attempts): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962234076-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962236796-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962239416-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962241946-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962244506-05:00 integrations/base.py:135: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962247186-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962249886-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962252676-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962255376-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962258006-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962260636-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962263236-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962265846-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962271426-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962278556-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962282876-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962285536-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962288196-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962290796-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962293456-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962296066-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962298686-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962301366-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962303996-05:00 self.gen.throw(value) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962306656-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962309166-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962311786-05:00 @contextlib.contextmanager [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962315326-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962317926-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962320536-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962323276-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962325875-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962328495-05:00 yield [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962331105-05:00 except Exception as exc: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962333695-05:00 mapped_exc = None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962336315-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962339015-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962341665-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962344335-05:00 continue [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962347025-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962349645-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962352295-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962354965-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962357565-05:00 mapped_exc = to_exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962360235-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962362865-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962365525-05:00 raise [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962368135-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962370745-05:00 message = str(exc) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962373365-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962375975-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962378465-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962381095-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962383615-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962386285-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962388795-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962391365-05:00 def test_parity_rundeck_output(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962393955-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962396565-05:00 ver = rc.config.extra.get("api_version", "48") [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962399145-05:00 proj = rc.config.extra.get("project", "storeminder") [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962401825-05:00 > execs = (_live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) or {}).get("executions") or [] [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962409055-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962411685-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962414295-05:00 tests/contract/test_fixture_parity.py:90: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962416905-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962419495-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962422045-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962424705-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962427275-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962429845-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962432515-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962435125-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962437615-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962440195-05:00 self = [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962442825-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962445535-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962448065-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962450645-05:00 def _request( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962453325-05:00 self, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962455945-05:00 method: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962458525-05:00 path: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962461835-05:00 *, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962464415-05:00 retry: bool = True, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962467105-05:00 **kwargs: Any, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962469705-05:00 ) -> httpx.Response: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962472285-05:00 client = self._ensure_client() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962475025-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962477625-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962480235-05:00 for attempt in range(attempts): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962482865-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962485535-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962488135-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962490715-05:00 last_exc = exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962493325-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962495975-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962498565-05:00 continue [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962501255-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962503855-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962506545-05:00 ) from exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962509245-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962511745-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962514325-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962516995-05:00 ____________________________ test_rundeck_reachable ____________________________ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962519535-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962522135-05:00 def test_rundeck_reachable(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962527915-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962530715-05:00 health = rc.healthcheck() # GET /api/{v}/system/info [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962537705-05:00 > assert health.reachable, f"rundeck unreachable: {health.detail}" [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962540415-05:00 E AssertionError: rundeck unreachable: rundeck: GET /api/48/system/info failed: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962549665-05:00 E assert False [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962552265-05:00 E + where False = .reachable [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962554775-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962557315-05:00 tests/contract/test_rundeck_contract.py:37: AssertionError [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962559935-05:00 _________________________ test_rundeck_execution_shape _________________________ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962562435-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962564995-05:00 @contextlib.contextmanager [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962567625-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962570244-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962572814-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962575374-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962577974-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962580594-05:00 > yield [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962583084-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962585644-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962588284-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962590964-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962593574-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962596204-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962598904-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962601554-05:00 raise exc from None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962604214-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962606804-05:00 response = connection.handle_request( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962609414-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962612104-05:00 raise exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962615444-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962618104-05:00 stream = self._connect(request) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962620704-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962623354-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962627134-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962629804-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962632424-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962635114-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962637714-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962640334-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962642954-05:00 self.gen.throw(value) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962645594-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962648094-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962650714-05:00 map = {: , : } [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962657624-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962660354-05:00 @contextlib.contextmanager [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962662954-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962665644-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962668254-05:00 yield [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962670874-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962673914-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962676484-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962679064-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962681754-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962684254-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962686844-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962689344-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962692224-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962694704-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962697264-05:00 self = [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962699834-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962702534-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962705594-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962708154-05:00 def _request( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962710744-05:00 self, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962713324-05:00 method: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962715904-05:00 path: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962718514-05:00 *, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962721084-05:00 retry: bool = True, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962723734-05:00 **kwargs: Any, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962726314-05:00 ) -> httpx.Response: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962728984-05:00 client = self._ensure_client() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962731644-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962735144-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962737814-05:00 for attempt in range(attempts): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962740474-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962743074-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962745774-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962748284-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962750854-05:00 integrations/base.py:135: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962753504-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962756104-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962758684-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962761274-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962763894-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962766714-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962769314-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962771964-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962778424-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962781154-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962783834-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962790814-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962794874-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962797534-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962800104-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962802704-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962805294-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962807954-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962810594-05:00 self.gen.throw(value) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962813174-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962815694-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962818254-05:00 @contextlib.contextmanager [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962822074-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962824684-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962827303-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962829893-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962832473-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962835053-05:00 yield [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962837723-05:00 except Exception as exc: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962840303-05:00 mapped_exc = None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962843023-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962845643-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962848303-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962850933-05:00 continue [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962853573-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962856233-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962859033-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962861633-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962864223-05:00 mapped_exc = to_exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962866863-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962869543-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962872123-05:00 raise [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962874733-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962877343-05:00 message = str(exc) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962880003-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962882593-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962885093-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962888333-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962890883-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962894103-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962896663-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962899233-05:00 def test_rundeck_execution_shape(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962901863-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962904523-05:00 > ex = _recent_execution(rc) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962907133-05:00 ^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962909643-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962912233-05:00 tests/contract/test_rundeck_contract.py:42: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962914873-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962921973-05:00 tests/contract/test_rundeck_contract.py:24: in _recent_execution [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962924623-05:00 data = _live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962927273-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962929873-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962932433-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962934983-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962937553-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962940203-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962942783-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962945393-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962947943-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962950773-05:00 self = [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962953403-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962956023-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962958543-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962961073-05:00 def _request( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962963763-05:00 self, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962966363-05:00 method: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962968973-05:00 path: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962971573-05:00 *, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962974163-05:00 retry: bool = True, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962976743-05:00 **kwargs: Any, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962979303-05:00 ) -> httpx.Response: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962981943-05:00 client = self._ensure_client() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962984583-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962987193-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962989863-05:00 for attempt in range(attempts): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962992473-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962995133-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.962997773-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963000373-05:00 last_exc = exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963002993-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963005553-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963008153-05:00 continue [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963010873-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963013453-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963016063-05:00 ) from exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963018703-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963021213-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963023783-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963026413-05:00 __________________________ test_rundeck_output_shape ___________________________ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963028933-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963031553-05:00 @contextlib.contextmanager [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963037153-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963039813-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963042413-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963049713-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963052383-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963054963-05:00 > yield [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963057473-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963060023-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963062643-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963065263-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963067873-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963070513-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963073153-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963075773-05:00 raise exc from None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963078503-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963081082-05:00 response = connection.handle_request( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963083742-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963086342-05:00 raise exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963088972-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963091552-05:00 stream = self._connect(request) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963094132-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963096742-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963099412-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963101972-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963104582-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963107162-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963109732-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963112302-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963114872-05:00 self.gen.throw(value) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963117502-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963120022-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963122652-05:00 map = {: , : } [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963125162-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963127732-05:00 @contextlib.contextmanager [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963130372-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963133022-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963135632-05:00 yield [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963138232-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963140852-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963143422-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963146082-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963148682-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963151172-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963153762-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963156282-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963158842-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963165672-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963168352-05:00 self = [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963170932-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963173512-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963176012-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963178552-05:00 def _request( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963181172-05:00 self, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963183792-05:00 method: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963186402-05:00 path: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963189002-05:00 *, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963191642-05:00 retry: bool = True, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963194222-05:00 **kwargs: Any, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963196772-05:00 ) -> httpx.Response: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963199362-05:00 client = self._ensure_client() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963201962-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963204582-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963207222-05:00 for attempt in range(attempts): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963209802-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963212412-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963214972-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963217462-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963220002-05:00 integrations/base.py:135: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963222862-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963225442-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963228152-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963230762-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963233372-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963235972-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963238562-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963241132-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963243712-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963246292-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963248902-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963251482-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963254062-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963256662-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963261202-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963263852-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963266462-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963271772-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963274452-05:00 self.gen.throw(value) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963277072-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963279542-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963282292-05:00 @contextlib.contextmanager [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963284912-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963287492-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963294972-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963297732-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963300332-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963302922-05:00 yield [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963305522-05:00 except Exception as exc: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963308102-05:00 mapped_exc = None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963310652-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963313242-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963315852-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963318532-05:00 continue [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963321122-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963323712-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963326312-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963328902-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963331482-05:00 mapped_exc = to_exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963334092-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963336701-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963339331-05:00 raise [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963341921-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963344501-05:00 message = str(exc) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963347091-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963349671-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963352151-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963354771-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963357271-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963359861-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963362351-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963364901-05:00 def test_rundeck_output_shape(): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963367511-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963370141-05:00 > ex = _recent_execution(rc) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963372801-05:00 ^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963375301-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963377871-05:00 tests/contract/test_rundeck_contract.py:59: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963380571-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963383201-05:00 tests/contract/test_rundeck_contract.py:24: in _recent_execution [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963385791-05:00 data = _live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963388371-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963390991-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963393701-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963396361-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963398931-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963401541-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963404181-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963407641-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963410211-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963412841-05:00 self = [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963420561-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963423231-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963425741-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963428321-05:00 def _request( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963430941-05:00 self, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963433561-05:00 method: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963436161-05:00 path: str, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963438731-05:00 *, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963442711-05:00 retry: bool = True, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963445361-05:00 **kwargs: Any, [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963448041-05:00 ) -> httpx.Response: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963450691-05:00 client = self._ensure_client() [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963453631-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963456221-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963458821-05:00 for attempt in range(attempts): [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963461431-05:00 try: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963464031-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963466611-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963469241-05:00 last_exc = exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963471841-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963474491-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963477161-05:00 continue [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963479781-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963482451-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963485061-05:00 ) from exc [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963487711-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963490231-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963492831-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963495461-05:00 ================================ tests coverage ================================ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963498071-05:00 _______________ coverage: platform linux, python 3.12.7-final-0 ________________ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963500571-05:00 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963503241-05:00 Name Stmts Miss Branch BrPart Cover Missing [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963505871-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963508441-05:00 config/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963511131-05:00 config/admin_gate.py 90 90 30 0 0% 32-203 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963513771-05:00 config/readiness.py 75 75 12 0 0% 47-184 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963528721-05:00 config/settings.py 55 2 6 3 92% 130->138, 139, 141 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963539951-05:00 config/urls.py 9 9 0 0 0% 2-18 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963548221-05:00 fleet/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963561401-05:00 fleet/admin.py 256 105 34 0 52% 73-74, 78, 81-84, 98, 102, 105, 139, 145-146, 168, 171, 192, 195, 206, 210, 257-266, 274-280, 285-295, 308-310, 339-343, 347-355, 359-362, 367-384, 389-403, 412-423, 459, 463-466, 470-499, 503-509 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963575651-05:00 fleet/api_consent.py 84 84 32 0 0% 23-170 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963578901-05:00 fleet/api_manifest.py 28 28 8 0 0% 38-90 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963581641-05:00 fleet/apps.py 5 0 0 0 100% [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963584531-05:00 fleet/contacts.py 26 18 8 0 24% 54, 63-70, 82-89, 102-129 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963587191-05:00 fleet/correlate.py 51 51 12 0 0% 28-170 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963589751-05:00 fleet/device_sts.py 65 65 14 0 0% 36-220 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963592490-05:00 fleet/forms.py 17 8 4 0 43% 17-19, 22-31 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963595110-05:00 fleet/home.py 13 13 4 0 0% 28-51 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963597730-05:00 fleet/integrity.py 36 30 26 0 10% 23-28, 33-39, 44-47, 52-59, 64-70 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963600550-05:00 fleet/logs.py 113 113 18 0 0% 26-287 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963603160-05:00 fleet/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963605750-05:00 fleet/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963608370-05:00 fleet/management/commands/poll_selftests.py 24 24 6 0 0% 13-61 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963610960-05:00 fleet/management/commands/reconcile_consents.py 37 37 10 0 0% 19-96 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963613560-05:00 fleet/management/commands/sync_devices.py 222 222 84 0 0% 34-364 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963616150-05:00 fleet/manifest.py 29 29 4 0 0% 34-131 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963618730-05:00 fleet/models.py 136 0 0 0 100% [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963621890-05:00 fleet/reconcile.py 111 79 34 0 22% 62, 67, 71-72, 82-87, 104-142, 148-161, 181-194, 202-205, 223-226, 239-244, 258-287 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963624520-05:00 fleet/roles.py 27 14 6 0 39% 95-108, 129-133 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963627170-05:00 fleet/scoping.py 32 25 12 0 16% 17-19, 26-28, 36-39, 44-47, 53-58, 66-72 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963629860-05:00 fleet/selftest.py 116 90 24 0 19% 67, 71, 90-124, 136-163, 168-173, 184-191, 201-214, 219-224, 235-254, 269-277 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963633430-05:00 fleet/status.py 144 82 26 0 36% 78, 101-106, 110-120, 124, 128, 132, 135-136, 163-164, 168, 185-188, 200-215, 219-221, 232-235, 241-255, 260-278, 283-286, 298-303, 307-312 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963636090-05:00 fleet/tests_authority.py 125 125 2 0 0% 4-229 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963638700-05:00 fleet/tests_consent.py 149 149 0 0 0% 16-284 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963641300-05:00 fleet/tests_consent_event.py 113 113 2 0 0% 9-195 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963643950-05:00 fleet/tests_correlate.py 51 51 4 0 0% 2-83 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963646560-05:00 fleet/tests_device_sts.py 150 150 2 0 0% 12-280 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963655880-05:00 fleet/tests_logs.py 163 163 2 0 0% 11-242 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963658630-05:00 fleet/tests_manifest.py 80 80 0 0 0% 15-190 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963661230-05:00 fleet/tests_memberships.py 179 179 2 0 0% 15-305 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963663800-05:00 fleet/tests_selftest.py 130 130 0 0 0% 14-255 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963666390-05:00 fleet/tests_status.py 219 219 2 0 0% 8-377 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963669020-05:00 fleet/tests_sync.py 178 178 8 0 0% 21-343 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963671770-05:00 fleet/tests_sync_integration.py 29 29 2 0 0% 17-83 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963674410-05:00 fleet/urls_consent.py 3 3 0 0 0% 5-9 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963677120-05:00 fleet/urls_logs.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963683020-05:00 fleet/urls_manifest.py 3 3 0 0 0% 7-11 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963685830-05:00 fleet/urls_selftest.py 3 3 0 0 0% 6-10 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963688590-05:00 fleet/urls_status.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963691250-05:00 fleet/validators.py 25 18 8 0 21% 27-29, 38-52 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963693890-05:00 integrations/__init__.py 18 5 0 0 72% 48, 52, 56, 60, 64 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963697350-05:00 integrations/base.py 122 33 32 12 67% 39, 43-51, 55, 60-62, 96, 99, 100->108, 111-113, 116, 119, 146-147, 161, 165, 176, 179, 186-187, 193, 196, 205, 220 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963699960-05:00 integrations/config.py 57 36 14 0 30% 18, 53-60, 64-66, 74-107, 111-116 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963702550-05:00 integrations/enroll.py 20 10 4 0 42% 28, 37-46, 50, 66 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963705180-05:00 integrations/errors.py 9 2 0 0 78% 35-36 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963708180-05:00 integrations/grafana.py 68 50 22 0 20% 27, 30, 33, 36, 43-50, 60-72, 75-97, 110-123, 126-135, 141 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963710780-05:00 integrations/headscale.py 33 8 12 4 64% 17, 26, 32-35, 42, 47->46, 49 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963713440-05:00 integrations/health.py 20 20 2 0 0% 6-43 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963716080-05:00 integrations/mender.py 79 57 26 0 21% 28-46, 56-74, 77-83, 87-92, 96-97, 102, 105-106, 118-124, 133-134, 148 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963719030-05:00 integrations/rundeck.py 46 25 10 0 38% 44-49, 65-81, 85-89, 95-103, 114-117, 126 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963722890-05:00 integrations/types.py 82 2 0 0 98% 68, 72 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963725550-05:00 integrations/urls.py 3 3 0 0 0% 1-5 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963728140-05:00 integrations/views.py 6 6 0 0 0% 7-16 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963730750-05:00 stores/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963733360-05:00 stores/admin.py 87 30 12 0 58% 95, 101-104, 107-110, 118-121, 142, 145, 148-152, 156-168, 183 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963740740-05:00 stores/api.py 66 66 20 0 0% 35-159 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963743460-05:00 stores/apps.py 5 0 0 0 100% [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963746060-05:00 stores/forms.py 35 20 12 0 32% 73-77, 81-84, 87-105 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963748660-05:00 stores/geocoding.py 115 115 34 0 0% 15-210 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963751300-05:00 stores/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963753880-05:00 stores/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963756470-05:00 stores/management/commands/check_authority.py 39 39 14 0 0% 14-76 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963759040-05:00 stores/management/commands/migrate_owner_staff.py 73 73 28 0 0% 32-204 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963761650-05:00 stores/management/commands/notify_new_enrolls.py 36 36 8 0 0% 11-75 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963764440-05:00 stores/management/commands/reattach_store.py 50 50 14 0 0% 29-94 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963767060-05:00 stores/management/commands/seed_e2e_fleet.py 231 231 34 0 0% 52-623 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963769650-05:00 stores/management/commands/seed_pilot_stores.py 68 68 16 0 0% 20-141 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963772220-05:00 stores/management/commands/sync_roles.py 24 24 8 0 0% 12-54 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963774810-05:00 stores/map.py 69 69 18 0 0% 19-155 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963777420-05:00 stores/models.py 112 4 0 0 96% 185, 211, 228, 231 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963780030-05:00 stores/scoping.py 5 3 2 0 29% 22-24 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963782580-05:00 stores/tests_api.py 105 105 0 0 0% 12-174 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963785240-05:00 stores/tests_authority.py 128 128 4 0 0% 7-238 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963787800-05:00 stores/tests_basemap.py 41 41 4 0 0% 7-80 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963790390-05:00 stores/tests_collector_config.py 66 66 2 0 0% 8-104 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963799930-05:00 stores/tests_geo.py 72 72 0 0 0% 8-127 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963802720-05:00 stores/tests_map.py 68 68 2 0 0% 6-106 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963805290-05:00 stores/tests_pilot_seed.py 94 94 0 0 0% 7-175 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963807860-05:00 stores/tests_report_config.py 29 29 0 0 0% 6-47 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963810490-05:00 stores/urls.py 4 4 0 0 0% 1-6 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963813070-05:00 stores/views.py 39 39 4 0 0% 2-112 [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963815650-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963818220-05:00 TOTAL 5633 4625 806 19 16% [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963821170-05:00 Coverage XML written to file coverage.xml [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963828810-05:00 =========================== short test summary info ============================ [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963831550-05:00 SKIPPED [5] tests/contract/_live.py:75: mender not configured (MENDER_URL/MENDER_API_TOKEN absent) — token not seeded yet [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963834310-05:00 SKIPPED [5] tests/contract/_live.py:101: grafana not configured (GRAFANA_URL/GRAFANA_TOKEN absent) — token not seeded yet [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963837010-05:00 =================== 5 failed, 16 passed, 10 skipped in 9.20s =================== [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963840030-05:00 ===CONTRACT_RC=1=== [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963842640-05:00 ----- end contract Job logs ----- [pod/app-contract-nightly-n5btq-contract-pod/step-run-contract] 2026-08-02T22:17:28.963845270-05:00 ==> contract run: Failed — STUB-VS-REALITY DRIFT or a live client broke — see the drift report in the Job logs above