===== app-contract-nightly-95v8q-archive-logs-pod.log ===== [pod/app-contract-nightly-95v8q-archive-logs-pod/prepare] 2026-08-08T22:17:36.130167130-05:00 2026/08/09 03:17:36 Entrypoint initialization [pod/app-contract-nightly-95v8q-archive-logs-pod/place-scripts] 2026-08-08T22:17:36.446935521-05:00 2026/08/09 03:17:36 Decoded script /tekton/scripts/script-0-9mlm9 [pod/app-contract-nightly-95v8q-archive-logs-pod/place-scripts] 2026-08-08T22:17:36.465481799-05:00 2026/08/09 03:17:36 Decoded script /tekton/scripts/script-1-gdflh [pod/app-contract-nightly-95v8q-archive-logs-pod/step-collect-logs] 2026-08-08T22:17:44.935603936-05:00 ==> collecting pod logs for PipelineRun=app-contract-nightly-95v8q ===== app-contract-nightly-95v8q-contract-pod.log ===== [pod/app-contract-nightly-95v8q-contract-pod/prepare] 2026-08-08T22:17:03.296188079-05:00 2026/08/09 03:17:03 Entrypoint initialization [pod/app-contract-nightly-95v8q-contract-pod/place-scripts] 2026-08-08T22:17:03.938658500-05:00 2026/08/09 03:17:03 Decoded script /tekton/scripts/script-0-9h6lp [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:07.657697792-05:00 resolved deployed image: registry.storeminder.ai/storeminder/app:003dc2f197336849905987c1b43df01cc1ba912c [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:07.732238644-05:00 job.batch/app-contract-20260809-031707 created [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.481239820-05:00 ----- contract Job logs (app-contract-20260809-031707) ----- [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.564043148-05:00 Installing pytest (runtime image has no test deps)… [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565456671-05:00 Running LIVE read-only contract + parity suite: tests/contract [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565478611-05:00 ============================= test session starts ============================== [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565484761-05:00 platform linux -- Python 3.12.7, pytest-9.1.1, pluggy-1.6.0 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565490530-05:00 django: version: 5.2.16, settings: config.settings (from env) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565496360-05:00 rootdir: /app [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565502330-05:00 configfile: pytest.ini [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565508600-05:00 plugins: django-4.13.0, cov-7.1.0, anyio-4.14.2 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565514610-05:00 collected 31 items [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565520140-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565525850-05:00 tests/contract/test_fixture_parity.py .FFsss [ 19%] [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565531540-05:00 tests/contract/test_grafana_contract.py sss [ 29%] [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565537520-05:00 tests/contract/test_headscale_contract.py ... [ 38%] [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565543260-05:00 tests/contract/test_mender_contract.py ssss [ 51%] [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565548830-05:00 tests/contract/test_rundeck_contract.py FFF [ 61%] [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565554470-05:00 tests/contract/test_shape_selfcheck.py ............ [100%] [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565559840-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565565640-05:00 =================================== FAILURES =================================== [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565571400-05:00 ________________________ test_parity_rundeck_execution _________________________ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565576710-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565583810-05:00 @contextlib.contextmanager [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565589830-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565595310-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565600980-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565606710-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565612450-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565618050-05:00 > yield [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565623310-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565628990-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565634700-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565641130-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565648930-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565654560-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565660500-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565666140-05:00 raise exc from None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565671910-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565677740-05:00 response = connection.handle_request( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565684150-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565690039-05:00 raise exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565695529-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565719389-05:00 stream = self._connect(request) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565723469-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565727349-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565731099-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565735109-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565738929-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565743309-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565747299-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565751209-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565760089-05:00 self.gen.throw(value) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565764269-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565767859-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565772239-05:00 map = {: , : } [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565779009-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565782979-05:00 @contextlib.contextmanager [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565787209-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565790969-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565794819-05:00 yield [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565798749-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565802569-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565806499-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565810499-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565814379-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565817859-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565821669-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565825439-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565829449-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565833179-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565837219-05:00 self = [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565841439-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565845369-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565849159-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565852909-05:00 def _request( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565856789-05:00 self, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565860529-05:00 method: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565864299-05:00 path: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565868149-05:00 *, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565871849-05:00 retry: bool = True, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565875689-05:00 **kwargs: Any, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565879379-05:00 ) -> httpx.Response: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565883139-05:00 client = self._ensure_client() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565887169-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565890979-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565894868-05:00 for attempt in range(attempts): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565898678-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565902718-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565906708-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565916838-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565920708-05:00 integrations/base.py:135: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565936998-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565941188-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565945018-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565948978-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565952908-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565956928-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565960858-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565965098-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565968928-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565972698-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565976578-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565980488-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565984388-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565988478-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565992478-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.565996218-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566000088-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566004008-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566007628-05:00 self.gen.throw(value) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566011308-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566015088-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566018868-05:00 @contextlib.contextmanager [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566022688-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566026408-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566030218-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566034098-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566037948-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566041668-05:00 yield [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566045398-05:00 except Exception as exc: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566049168-05:00 mapped_exc = None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566053048-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566056938-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566060688-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566064718-05:00 continue [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566068548-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566072328-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566076378-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566080028-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566083778-05:00 mapped_exc = to_exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566087718-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566091668-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566102277-05:00 raise [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566106097-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566110027-05:00 message = str(exc) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566114397-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566118027-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566121557-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566125567-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566129327-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566133867-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566137717-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566141597-05:00 def test_parity_rundeck_execution(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566145447-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566149427-05:00 ver = rc.config.extra.get("api_version", "48") [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566153087-05:00 proj = rc.config.extra.get("project", "storeminder") [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566156957-05:00 > execs = (_live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) or {}).get("executions") or [] [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566160827-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566164467-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566168087-05:00 tests/contract/test_fixture_parity.py:73: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566172017-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566175747-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566179417-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566183357-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566188077-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566191857-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566195867-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566199827-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566203337-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566207087-05:00 self = [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566211217-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566215027-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566218617-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566222267-05:00 def _request( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566226027-05:00 self, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566230267-05:00 method: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566234007-05:00 path: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566237707-05:00 *, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566241747-05:00 retry: bool = True, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566245517-05:00 **kwargs: Any, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566249347-05:00 ) -> httpx.Response: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566256987-05:00 client = self._ensure_client() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566260867-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566265527-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566269247-05:00 for attempt in range(attempts): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566273177-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566277377-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566281697-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566285877-05:00 last_exc = exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566289967-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566303116-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566307416-05:00 continue [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566311316-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566315246-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566319156-05:00 ) from exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566323336-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566327096-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566330916-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566334856-05:00 __________________________ test_parity_rundeck_output __________________________ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566338556-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566342326-05:00 @contextlib.contextmanager [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566346116-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566349926-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566353926-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566357736-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566361476-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566365376-05:00 > yield [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566368756-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566379836-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566386406-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566390336-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566394216-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566398236-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566402276-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566406296-05:00 raise exc from None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566409956-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566413746-05:00 response = connection.handle_request( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566417716-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566421466-05:00 raise exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566425276-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566429186-05:00 stream = self._connect(request) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566433716-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566437836-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566441876-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566445756-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566449536-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566453126-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566457326-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566460976-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566464936-05:00 self.gen.throw(value) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566468796-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566472546-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566482396-05:00 map = {: , : } [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566486186-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566489846-05:00 @contextlib.contextmanager [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566493696-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566497475-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566501435-05:00 yield [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566505005-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566509155-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566513015-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566516755-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566520545-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566524395-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566528205-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566531885-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566535725-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566539355-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566543255-05:00 self = [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566547025-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566550715-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566556075-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566559825-05:00 def _request( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566564305-05:00 self, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566568295-05:00 method: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566572115-05:00 path: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566575975-05:00 *, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566579705-05:00 retry: bool = True, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566583495-05:00 **kwargs: Any, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566587305-05:00 ) -> httpx.Response: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566591115-05:00 client = self._ensure_client() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566595235-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566599045-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566602965-05:00 for attempt in range(attempts): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566606745-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566610765-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566615005-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566618615-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566622275-05:00 integrations/base.py:135: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566626495-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566630425-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566634455-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566638375-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566642185-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566646035-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566649975-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566653695-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566659825-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566664185-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566674075-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566677995-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566681665-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566686375-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566690305-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566694964-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566698784-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566702564-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566706314-05:00 self.gen.throw(value) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566710474-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566713994-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566717844-05:00 @contextlib.contextmanager [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566721784-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566726334-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566730154-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566734084-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566737914-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566745404-05:00 yield [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566749424-05:00 except Exception as exc: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566753454-05:00 mapped_exc = None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566757264-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566761284-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566764974-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566768764-05:00 continue [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566772464-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566776374-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566780164-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566783974-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566787804-05:00 mapped_exc = to_exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566791544-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566795104-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566798784-05:00 raise [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566802484-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566806234-05:00 message = str(exc) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566809934-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566813864-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566817354-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566821084-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566824774-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566828444-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566831994-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566836044-05:00 def test_parity_rundeck_output(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566839724-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566843604-05:00 ver = rc.config.extra.get("api_version", "48") [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566847454-05:00 proj = rc.config.extra.get("project", "storeminder") [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566851454-05:00 > execs = (_live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) or {}).get("executions") or [] [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566861054-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566864814-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566868494-05:00 tests/contract/test_fixture_parity.py:90: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566872514-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566876564-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566880064-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566883734-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566887693-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566891393-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566895143-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566899043-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566902673-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566906293-05:00 self = [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566910283-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566914053-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566917873-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566921683-05:00 def _request( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566925803-05:00 self, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566929423-05:00 method: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566933193-05:00 path: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566937093-05:00 *, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566941123-05:00 retry: bool = True, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566945263-05:00 **kwargs: Any, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566949013-05:00 ) -> httpx.Response: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.566953033-05:00 client = self._ensure_client() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567018653-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567023653-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567027653-05:00 for attempt in range(attempts): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567031483-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567035713-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567039613-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567043523-05:00 last_exc = exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567047383-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567051273-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567055073-05:00 continue [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567059123-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567063093-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567067003-05:00 ) from exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567070943-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567074683-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567078553-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567082402-05:00 ____________________________ test_rundeck_reachable ____________________________ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567086132-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567090072-05:00 def test_rundeck_reachable(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567099652-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567105352-05:00 health = rc.healthcheck() # GET /api/{v}/system/info [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567120552-05:00 > assert health.reachable, f"rundeck unreachable: {health.detail}" [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567123502-05:00 E AssertionError: rundeck unreachable: rundeck: GET /api/48/system/info failed: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567126272-05:00 E assert False [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567129022-05:00 E + where False = .reachable [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567131542-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567134162-05:00 tests/contract/test_rundeck_contract.py:37: AssertionError [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567136992-05:00 _________________________ test_rundeck_execution_shape _________________________ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567139572-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567142162-05:00 @contextlib.contextmanager [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567145992-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567150042-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567153912-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567158452-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567162222-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567166132-05:00 > yield [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567173352-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567176142-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567178832-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567181512-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567184172-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567186792-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567189632-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567192322-05:00 raise exc from None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567194942-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567197572-05:00 response = connection.handle_request( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567200212-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567202892-05:00 raise exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567205512-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567208132-05:00 stream = self._connect(request) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567210752-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567213492-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567216112-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567218742-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567221362-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567223962-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567226572-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567229182-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567231832-05:00 self.gen.throw(value) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567235462-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567239192-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567243412-05:00 map = {: , : } [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567252572-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567255442-05:00 @contextlib.contextmanager [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567258122-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567260742-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567263382-05:00 yield [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567266052-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567268682-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567271272-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567273862-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567276471-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567279011-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567281661-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567284201-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567286851-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567289561-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567292141-05:00 self = [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567294751-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567297381-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567299901-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567302501-05:00 def _request( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567305121-05:00 self, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567307811-05:00 method: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567310421-05:00 path: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567314081-05:00 *, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567318061-05:00 retry: bool = True, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567322001-05:00 **kwargs: Any, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567325671-05:00 ) -> httpx.Response: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567328291-05:00 client = self._ensure_client() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567330881-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567333611-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567336221-05:00 for attempt in range(attempts): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567339831-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567342491-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567345091-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567347581-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567350191-05:00 integrations/base.py:135: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567352791-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567355461-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567358091-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567360681-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567363801-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567366391-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567369011-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567379381-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567392781-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567396051-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567398711-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567407041-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567409741-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567412341-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567414941-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567417561-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567420241-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567422821-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567425411-05:00 self.gen.throw(value) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567428021-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567430551-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567433191-05:00 @contextlib.contextmanager [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567435821-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567438661-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567441331-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567443991-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567446611-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567449201-05:00 yield [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567451821-05:00 except Exception as exc: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567454411-05:00 mapped_exc = None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567457721-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567464921-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567468961-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567472231-05:00 continue [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567474931-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567477630-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567480260-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567484110-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567486800-05:00 mapped_exc = to_exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567489440-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567492180-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567494830-05:00 raise [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567497430-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567500160-05:00 message = str(exc) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567502820-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567505430-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567507920-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567510640-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567513210-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567515870-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567518420-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567521030-05:00 def test_rundeck_execution_shape(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567523660-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567526250-05:00 > ex = _recent_execution(rc) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567528830-05:00 ^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567531330-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567533920-05:00 tests/contract/test_rundeck_contract.py:42: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567538150-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567542140-05:00 tests/contract/test_rundeck_contract.py:24: in _recent_execution [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567551410-05:00 data = _live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567554110-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567556730-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567559320-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567561960-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567564580-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567567180-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567569770-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567572360-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567574890-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567577480-05:00 self = [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567580110-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567582740-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567585330-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567587920-05:00 def _request( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567590540-05:00 self, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567593150-05:00 method: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567595730-05:00 path: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567598320-05:00 *, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567601030-05:00 retry: bool = True, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567603650-05:00 **kwargs: Any, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567606390-05:00 ) -> httpx.Response: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567609080-05:00 client = self._ensure_client() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567611700-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567615740-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567619770-05:00 for attempt in range(attempts): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567623410-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567626890-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567629540-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567632220-05:00 last_exc = exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567634890-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567637480-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567640130-05:00 continue [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567642790-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567645410-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567648030-05:00 ) from exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567650790-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567653380-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567655960-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567659650-05:00 __________________________ test_rundeck_output_shape ___________________________ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567662210-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567664830-05:00 @contextlib.contextmanager [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567672620-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567676650-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567680549-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567684479-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567694259-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567698409-05:00 > yield [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567701869-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567705609-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567708229-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567710829-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567713519-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567716189-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567719649-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567722279-05:00 raise exc from None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567724899-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567727539-05:00 response = connection.handle_request( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567730439-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567733119-05:00 raise exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567735819-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567738479-05:00 stream = self._connect(request) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567741139-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567743799-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567746449-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567749049-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567751669-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567754309-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567756979-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567759609-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567762289-05:00 self.gen.throw(value) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567764919-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567767449-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567771189-05:00 map = {: , : } [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567775089-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567778969-05:00 @contextlib.contextmanager [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567782979-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567785769-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567788449-05:00 yield [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567791079-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567793709-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567796339-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567798929-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567801599-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567804149-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567807669-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567810189-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567812799-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567815309-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567817929-05:00 self = [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567825619-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567828299-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567830949-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567833579-05:00 def _request( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567836219-05:00 self, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567838859-05:00 method: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567841469-05:00 path: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567844099-05:00 *, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567846699-05:00 retry: bool = True, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567849289-05:00 **kwargs: Any, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567851929-05:00 ) -> httpx.Response: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567854539-05:00 client = self._ensure_client() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567857169-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567859799-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567862399-05:00 for attempt in range(attempts): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567864999-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567867609-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567870199-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567872719-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567875339-05:00 integrations/base.py:135: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567878009-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567880709-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567883568-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567886228-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567888878-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567891508-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567894188-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567896788-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567899488-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567902128-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567904748-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567907448-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567910038-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567912638-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567915268-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567917938-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567920598-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567927608-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567931798-05:00 self.gen.throw(value) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567935778-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567939408-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567942598-05:00 @contextlib.contextmanager [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567945238-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567947868-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567950468-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567958038-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567960758-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567963368-05:00 yield [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567965978-05:00 except Exception as exc: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567968638-05:00 mapped_exc = None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567971258-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567973878-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567976508-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567979228-05:00 continue [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567981878-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567984498-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567987118-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567989818-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567992478-05:00 mapped_exc = to_exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567995098-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.567997748-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568000368-05:00 raise [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568003018-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568005648-05:00 message = str(exc) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568008278-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568010938-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568013448-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568016048-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568018588-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568021168-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568023688-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568026268-05:00 def test_rundeck_output_shape(): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568028858-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568031548-05:00 > ex = _recent_execution(rc) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568034248-05:00 ^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568036758-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568039338-05:00 tests/contract/test_rundeck_contract.py:59: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568041978-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568044598-05:00 tests/contract/test_rundeck_contract.py:24: in _recent_execution [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568047198-05:00 data = _live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568049788-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568052448-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568055048-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568057668-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568060268-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568062878-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568065478-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568068078-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568070608-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568073208-05:00 self = [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568075828-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568083068-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568085647-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568088327-05:00 def _request( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568090977-05:00 self, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568093597-05:00 method: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568096307-05:00 path: str, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568098977-05:00 *, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568101617-05:00 retry: bool = True, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568104417-05:00 **kwargs: Any, [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568107007-05:00 ) -> httpx.Response: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568109627-05:00 client = self._ensure_client() [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568112467-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568115287-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568118057-05:00 for attempt in range(attempts): [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568120757-05:00 try: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568123367-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568125997-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568128627-05:00 last_exc = exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568131237-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568133847-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568136467-05:00 continue [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568139087-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568141727-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568144367-05:00 ) from exc [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568147047-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568149617-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568152587-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568155207-05:00 ================================ tests coverage ================================ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568157877-05:00 _______________ coverage: platform linux, python 3.12.7-final-0 ________________ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568160427-05:00 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568163097-05:00 Name Stmts Miss Branch BrPart Cover Missing [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568165747-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568168427-05:00 config/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568171047-05:00 config/admin_gate.py 90 90 30 0 0% 32-203 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568173687-05:00 config/readiness.py 75 75 12 0 0% 47-184 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568193157-05:00 config/settings.py 55 2 6 3 92% 130->138, 139, 141 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568199587-05:00 config/urls.py 9 9 0 0 0% 2-18 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568204157-05:00 fleet/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568215707-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-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568222507-05:00 fleet/api_consent.py 84 84 32 0 0% 23-170 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568233937-05:00 fleet/api_manifest.py 28 28 8 0 0% 38-90 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568237687-05:00 fleet/apps.py 5 0 0 0 100% [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568243017-05:00 fleet/contacts.py 26 18 8 0 24% 54, 63-70, 82-89, 102-129 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568246917-05:00 fleet/correlate.py 51 51 12 0 0% 28-170 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568250797-05:00 fleet/device_sts.py 65 65 14 0 0% 36-220 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568254927-05:00 fleet/forms.py 17 8 4 0 43% 17-19, 22-31 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568258897-05:00 fleet/home.py 13 13 4 0 0% 28-51 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568262907-05:00 fleet/integrity.py 36 30 26 0 10% 23-28, 33-39, 44-47, 52-59, 64-70 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568266677-05:00 fleet/logs.py 113 113 18 0 0% 26-287 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568270617-05:00 fleet/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568274187-05:00 fleet/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568277827-05:00 fleet/management/commands/poll_selftests.py 24 24 6 0 0% 13-61 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568281687-05:00 fleet/management/commands/reconcile_consents.py 37 37 10 0 0% 19-96 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568285567-05:00 fleet/management/commands/sync_devices.py 222 222 84 0 0% 34-364 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568289346-05:00 fleet/manifest.py 29 29 4 0 0% 34-131 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568293176-05:00 fleet/models.py 136 0 0 0 100% [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568299376-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-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568303316-05:00 fleet/roles.py 27 14 6 0 39% 95-108, 129-133 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568307136-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-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568310936-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-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568316566-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-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568321176-05:00 fleet/tests_authority.py 125 125 2 0 0% 4-229 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568325966-05:00 fleet/tests_consent.py 149 149 0 0 0% 16-284 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568330066-05:00 fleet/tests_consent_event.py 113 113 2 0 0% 9-195 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568334106-05:00 fleet/tests_correlate.py 51 51 4 0 0% 2-83 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568337976-05:00 fleet/tests_device_sts.py 150 150 2 0 0% 12-280 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568342106-05:00 fleet/tests_logs.py 163 163 2 0 0% 11-242 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568352406-05:00 fleet/tests_manifest.py 80 80 0 0 0% 15-190 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568355776-05:00 fleet/tests_memberships.py 179 179 2 0 0% 15-305 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568358606-05:00 fleet/tests_selftest.py 130 130 0 0 0% 14-255 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568361296-05:00 fleet/tests_status.py 219 219 2 0 0% 8-377 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568364046-05:00 fleet/tests_sync.py 178 178 8 0 0% 21-343 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568366726-05:00 fleet/tests_sync_integration.py 29 29 2 0 0% 17-83 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568369436-05:00 fleet/urls_consent.py 3 3 0 0 0% 5-9 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568379536-05:00 fleet/urls_logs.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568391576-05:00 fleet/urls_manifest.py 3 3 0 0 0% 7-11 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568394746-05:00 fleet/urls_selftest.py 3 3 0 0 0% 6-10 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568397476-05:00 fleet/urls_status.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568400236-05:00 fleet/validators.py 25 18 8 0 21% 27-29, 38-52 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568402986-05:00 integrations/__init__.py 18 5 0 0 72% 48, 52, 56, 60, 64 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568406486-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-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568409336-05:00 integrations/config.py 57 36 14 0 30% 18, 53-60, 64-66, 74-107, 111-116 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568412046-05:00 integrations/enroll.py 20 10 4 0 42% 28, 37-46, 50, 66 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568414816-05:00 integrations/errors.py 9 2 0 0 78% 35-36 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568418486-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-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568421246-05:00 integrations/headscale.py 33 8 12 4 64% 17, 26, 32-35, 42, 47->46, 49 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568423936-05:00 integrations/health.py 20 20 2 0 0% 6-43 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568426566-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-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568429846-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-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568432686-05:00 integrations/types.py 82 2 0 0 98% 68, 72 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568435406-05:00 integrations/urls.py 3 3 0 0 0% 1-5 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568438046-05:00 integrations/views.py 6 6 0 0 0% 7-16 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568440686-05:00 stores/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568443546-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-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568451056-05:00 stores/api.py 66 66 20 0 0% 35-159 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568453776-05:00 stores/apps.py 5 0 0 0 100% [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568456996-05:00 stores/forms.py 35 20 12 0 32% 73-77, 81-84, 87-105 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568459696-05:00 stores/geocoding.py 115 115 34 0 0% 15-210 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568462326-05:00 stores/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568465056-05:00 stores/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568467736-05:00 stores/management/commands/check_authority.py 39 39 14 0 0% 14-76 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568470506-05:00 stores/management/commands/migrate_owner_staff.py 73 73 28 0 0% 32-204 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568473196-05:00 stores/management/commands/notify_new_enrolls.py 36 36 8 0 0% 11-75 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568475886-05:00 stores/management/commands/reattach_store.py 50 50 14 0 0% 29-94 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568478646-05:00 stores/management/commands/seed_e2e_fleet.py 231 231 34 0 0% 52-623 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568481346-05:00 stores/management/commands/seed_pilot_stores.py 68 68 16 0 0% 20-141 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568483966-05:00 stores/management/commands/sync_roles.py 24 24 8 0 0% 12-54 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568486616-05:00 stores/map.py 69 69 18 0 0% 19-155 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568489296-05:00 stores/models.py 112 4 0 0 96% 185, 211, 228, 231 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568491885-05:00 stores/scoping.py 5 3 2 0 29% 22-24 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568494485-05:00 stores/tests_api.py 105 105 0 0 0% 12-174 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568497085-05:00 stores/tests_authority.py 128 128 4 0 0% 7-238 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568499835-05:00 stores/tests_basemap.py 41 41 4 0 0% 7-80 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568502485-05:00 stores/tests_collector_config.py 66 66 2 0 0% 8-104 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568512075-05:00 stores/tests_geo.py 72 72 0 0 0% 8-127 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568514795-05:00 stores/tests_map.py 68 68 2 0 0% 6-106 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568517395-05:00 stores/tests_pilot_seed.py 94 94 0 0 0% 7-175 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568521145-05:00 stores/tests_report_config.py 29 29 0 0 0% 6-47 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568523815-05:00 stores/urls.py 4 4 0 0 0% 1-6 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568526485-05:00 stores/views.py 39 39 4 0 0% 2-112 [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568529185-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568531775-05:00 TOTAL 5633 4625 806 19 16% [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568534875-05:00 Coverage XML written to file coverage.xml [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568546635-05:00 =========================== short test summary info ============================ [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568549375-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-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568552045-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-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568554655-05:00 =================== 5 failed, 16 passed, 10 skipped in 9.04s =================== [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568557555-05:00 ===CONTRACT_RC=1=== [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.568560285-05:00 ----- end contract Job logs ----- [pod/app-contract-nightly-95v8q-contract-pod/step-run-contract] 2026-08-08T22:17:33.574760554-05:00 ==> contract run: Failed — STUB-VS-REALITY DRIFT or a live client broke — see the drift report in the Job logs above