===== app-contract-nightly-staging-trpft-archive-logs-pod.log ===== [pod/app-contract-nightly-staging-trpft-archive-logs-pod/place-scripts] 2026-08-08T21:47:32.298872987-05:00 2026/08/09 02:47:32 Decoded script /tekton/scripts/script-0-5nlzn [pod/app-contract-nightly-staging-trpft-archive-logs-pod/place-scripts] 2026-08-08T21:47:32.320178944-05:00 2026/08/09 02:47:32 Decoded script /tekton/scripts/script-1-xrg27 [pod/app-contract-nightly-staging-trpft-archive-logs-pod/step-collect-logs] 2026-08-08T21:47:36.626517205-05:00 ==> collecting pod logs for PipelineRun=app-contract-nightly-staging-trpft [pod/app-contract-nightly-staging-trpft-archive-logs-pod/prepare] 2026-08-08T21:47:31.788151758-05:00 2026/08/09 02:47:31 Entrypoint initialization ===== app-contract-nightly-staging-trpft-contract-pod.log ===== [pod/app-contract-nightly-staging-trpft-contract-pod/prepare] 2026-08-08T21:47:04.012477981-05:00 2026/08/09 02:47:04 Entrypoint initialization [pod/app-contract-nightly-staging-trpft-contract-pod/place-scripts] 2026-08-08T21:47:05.039707537-05:00 2026/08/09 02:47:05 Decoded script /tekton/scripts/script-0-g4n5m [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:08.488356610-05:00 resolved deployed image: registry.storeminder.ai/storeminder/app:ee7cf4cd9cd61ed4ab4e7538ef34cddf96caed8c [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:08.606628951-05:00 job.batch/app-contract-20260809-024708 created [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.414428895-05:00 ----- contract Job logs (app-contract-20260809-024708) ----- [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834298967-05:00 Installing pytest (runtime image has no test deps)… [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834334394-05:00 Running LIVE read-only contract + parity suite: tests/contract [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834343032-05:00 ============================= test session starts ============================== [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834350089-05:00 platform linux -- Python 3.12.7, pytest-9.1.1, pluggy-1.6.0 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834357008-05:00 django: version: 5.2.16, settings: config.settings (from env) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834365228-05:00 rootdir: /app [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834373220-05:00 configfile: pytest.ini [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834380626-05:00 plugins: django-4.13.0, cov-7.1.0, anyio-4.14.2 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834387594-05:00 collected 31 items [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834395397-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834405287-05:00 tests/contract/test_fixture_parity.py .FFsss [ 19%] [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834411122-05:00 tests/contract/test_grafana_contract.py sss [ 29%] [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834417375-05:00 tests/contract/test_headscale_contract.py ... [ 38%] [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834425049-05:00 tests/contract/test_mender_contract.py ssss [ 51%] [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834431341-05:00 tests/contract/test_rundeck_contract.py FFF [ 61%] [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834437981-05:00 tests/contract/test_shape_selfcheck.py ............ [100%] [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834445207-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834451211-05:00 =================================== FAILURES =================================== [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834457434-05:00 ________________________ test_parity_rundeck_execution _________________________ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834464680-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834477245-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834489233-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834496181-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834503119-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834510226-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834517662-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834525574-05:00 > yield [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834532562-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834539530-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834547025-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834553675-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834559709-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834566021-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834572353-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834578168-05:00 raise exc from None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834584420-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834590533-05:00 response = connection.handle_request( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834596607-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834602402-05:00 raise exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834628853-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834633684-05:00 stream = self._connect(request) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834638406-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834646447-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834654678-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834659300-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834664031-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834668803-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834673713-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834679071-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834683256-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834687152-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834690791-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834695204-05:00 map = {: , : } [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834700015-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834703932-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834707808-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834711735-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834715711-05:00 yield [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834719677-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834723613-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834727540-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834731426-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834735313-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834738971-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834742838-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834746625-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834750452-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834754120-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834757927-05:00 self = [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834761843-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834765849-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834769537-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834773414-05:00 def _request( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834777290-05:00 self, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834781137-05:00 method: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834784984-05:00 path: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834788801-05:00 *, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834792678-05:00 retry: bool = True, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834796515-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834800362-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834804189-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834808065-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834811922-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834815759-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834819586-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834823552-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834827429-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834843353-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834847359-05:00 integrations/base.py:135: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834862389-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834866534-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834870420-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834874705-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834878939-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834882826-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834886702-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834890559-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834894506-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834898352-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834902279-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834906295-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834910181-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834914028-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834917865-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834921742-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834925589-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834929406-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834933262-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834937189-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834940877-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834944942-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834948819-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834965151-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834974703-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834978650-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834985140-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834989276-05:00 yield [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834993262-05:00 except Exception as exc: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.834997109-05:00 mapped_exc = None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835001015-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835005011-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835008888-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835012784-05:00 continue [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835016681-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835020637-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835024563-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835028450-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835032287-05:00 mapped_exc = to_exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835036174-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835040050-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835052645-05:00 raise [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835056591-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835060597-05:00 message = str(exc) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835064444-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835068281-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835071939-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835075825-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835079533-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835083380-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835087078-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835090944-05:00 def test_parity_rundeck_execution(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835096570-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835100517-05:00 ver = rc.config.extra.get("api_version", "48") [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835104364-05:00 proj = rc.config.extra.get("project", "storeminder") [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835108250-05:00 > execs = (_live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) or {}).get("executions") or [] [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835112137-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835115795-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835119662-05:00 tests/contract/test_fixture_parity.py:73: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835123578-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835127415-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835131222-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835135059-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835138886-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835142723-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835146520-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835150377-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835154095-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835157931-05:00 self = [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835161788-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835165655-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835169333-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835173190-05:00 def _request( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835177106-05:00 self, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835181072-05:00 method: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835185009-05:00 path: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835188875-05:00 *, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835192752-05:00 retry: bool = True, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835196599-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835200436-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835204273-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835208140-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835211996-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835215933-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835219809-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835223746-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835227702-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835231589-05:00 last_exc = exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835243507-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835253636-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835257652-05:00 continue [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835261499-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835265415-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835269520-05:00 ) from exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835273745-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835277463-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835281379-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835285236-05:00 __________________________ test_parity_rundeck_output __________________________ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835288983-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835292810-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835296707-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835300564-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835304391-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835308218-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835312075-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835315961-05:00 > yield [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835319729-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835323575-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835327432-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835331279-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835335166-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835339003-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835342869-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835346736-05:00 raise exc from None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835350673-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835354529-05:00 response = connection.handle_request( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835358366-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835362233-05:00 raise exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835366100-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835370036-05:00 stream = self._connect(request) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835373903-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835377750-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835381706-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835385543-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835389380-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835393256-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835397153-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835401030-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835404906-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835408783-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835412511-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835424002-05:00 map = {: , : } [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835427848-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835431705-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835435562-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835439498-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835443385-05:00 yield [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835447292-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835451208-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835455075-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835458902-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835462749-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835466407-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835470273-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835473981-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835477838-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835481516-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835485363-05:00 self = [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835489219-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835493066-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835496754-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835500621-05:00 def _request( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835504527-05:00 self, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835508404-05:00 method: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835512350-05:00 path: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835516257-05:00 *, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835520104-05:00 retry: bool = True, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835525770-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835529646-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835533513-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835537380-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835541257-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835545133-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835548980-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835552926-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835556743-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835560391-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835564288-05:00 integrations/base.py:135: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835568165-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835572071-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835576008-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835579874-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835583811-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835587667-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835591494-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835595321-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835605977-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835610112-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835621733-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835625758-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835629625-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835633472-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835637349-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835641215-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835645052-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835648959-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835652836-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835656732-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835660420-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835664326-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835668203-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835672060-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835676046-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835679972-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835683869-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835687775-05:00 yield [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835691692-05:00 except Exception as exc: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835695549-05:00 mapped_exc = None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835699366-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835703262-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835707099-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835711155-05:00 continue [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835715091-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835718988-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835722825-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835726662-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835730499-05:00 mapped_exc = to_exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835734375-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835738282-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835742168-05:00 raise [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835746015-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835749902-05:00 message = str(exc) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835753759-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835757685-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835761383-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835765289-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835768957-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835772844-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835776542-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835780418-05:00 def test_parity_rundeck_output(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835784265-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835788122-05:00 ver = rc.config.extra.get("api_version", "48") [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835791969-05:00 proj = rc.config.extra.get("project", "storeminder") [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835795856-05:00 > execs = (_live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) or {}).get("executions") or [] [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835807327-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835811094-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835814961-05:00 tests/contract/test_fixture_parity.py:90: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835818827-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835822684-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835826521-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835830348-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835834165-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835837982-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835841879-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835845726-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835849423-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835853290-05:00 self = [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835857177-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835861093-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835864771-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835868727-05:00 def _request( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835872684-05:00 self, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835876580-05:00 method: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835880427-05:00 path: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835884304-05:00 *, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835888151-05:00 retry: bool = True, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835891988-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835895824-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835899691-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835903578-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835907435-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835911282-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835915148-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835919045-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835922922-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835926778-05:00 last_exc = exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835930645-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835934512-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835938359-05:00 continue [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835942245-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835946102-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835949959-05:00 ) from exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835970734-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835977414-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835981291-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835985207-05:00 ____________________________ test_rundeck_reachable ____________________________ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835988895-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.835992742-05:00 def test_rundeck_reachable(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836002384-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836006340-05:00 health = rc.healthcheck() # GET /api/{v}/system/info [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836018566-05:00 > assert health.reachable, f"rundeck unreachable: {health.detail}" [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836022523-05:00 E AssertionError: rundeck unreachable: rundeck: GET /api/48/system/info failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836026648-05:00 E assert False [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836030515-05:00 E + where False = .reachable [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836034252-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836038109-05:00 tests/contract/test_rundeck_contract.py:37: AssertionError [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836041966-05:00 _________________________ test_rundeck_execution_shape _________________________ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836045683-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836049500-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836053367-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836057293-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836061160-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836065007-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836068874-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836072760-05:00 > yield [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836076478-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836080335-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836084232-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836088158-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836092035-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836095901-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836099768-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836103645-05:00 raise exc from None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836107611-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836111488-05:00 response = connection.handle_request( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836115384-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836119360-05:00 raise exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836123267-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836127124-05:00 stream = self._connect(request) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836131010-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836134867-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836138734-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836142610-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836146467-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836150374-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836154211-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836158048-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836161944-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836165831-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836169529-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836173415-05:00 map = {: , : } [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836184588-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836188534-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836192421-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836196288-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836200135-05:00 yield [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836204001-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836207838-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836211725-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836217232-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836221178-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836224866-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836228752-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836232440-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836236297-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836239945-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836246436-05:00 self = [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836250303-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836254199-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836257897-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836261764-05:00 def _request( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836265660-05:00 self, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836269656-05:00 method: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836273513-05:00 path: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836277380-05:00 *, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836281277-05:00 retry: bool = True, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836285163-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836289030-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836292887-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836296773-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836300620-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836304457-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836308314-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836312181-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836316117-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836319795-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836323612-05:00 integrations/base.py:135: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836327459-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836331306-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836335153-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836338999-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836342836-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836346693-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836350530-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836354486-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836364079-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836368085-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836372001-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836375848-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836387876-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836391782-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836395639-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836399506-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836403352-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836408651-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836412527-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836416384-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836420122-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836423988-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836427865-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836431772-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836435668-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836439624-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836443491-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836447388-05:00 yield [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836451344-05:00 except Exception as exc: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836455201-05:00 mapped_exc = None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836459067-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836462924-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836466841-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836470787-05:00 continue [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836474872-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836478759-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836482666-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836486532-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836490369-05:00 mapped_exc = to_exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836494236-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836498132-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836501989-05:00 raise [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836505836-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836509693-05:00 message = str(exc) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836513629-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836517466-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836521144-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836525041-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836528729-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836532555-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836536233-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836540080-05:00 def test_rundeck_execution_shape(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836544683-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836548579-05:00 > ex = _recent_execution(rc) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836552446-05:00 ^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836556124-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836559971-05:00 tests/contract/test_rundeck_contract.py:42: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836563817-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836567684-05:00 tests/contract/test_rundeck_contract.py:24: in _recent_execution [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836579294-05:00 data = _live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836583261-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836587137-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836590944-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836594781-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836598628-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836602455-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836606292-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836610169-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836613906-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836617803-05:00 self = [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836621680-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836625556-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836629264-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836633141-05:00 def _request( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836637027-05:00 self, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836640904-05:00 method: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836644890-05:00 path: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836648796-05:00 *, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836652653-05:00 retry: bool = True, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836656520-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836660446-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836664323-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836668180-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836672047-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836675933-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836679820-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836683766-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836688378-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836692275-05:00 last_exc = exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836696102-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836699939-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836703806-05:00 continue [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836707702-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836711569-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836715436-05:00 ) from exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836719352-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836723050-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836727016-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836730893-05:00 __________________________ test_rundeck_output_shape ___________________________ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836734581-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836738457-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836747095-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836752861-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836756767-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836761141-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836772443-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836776429-05:00 > yield [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836780186-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836784063-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:101: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836787970-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836791906-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836795812-05:00 resp = self._pool.handle_request(req) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836799649-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836803576-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836807502-05:00 raise exc from None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836811508-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836815424-05:00 response = connection.handle_request( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836819311-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836823208-05:00 raise exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836827184-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836831060-05:00 stream = self._connect(request) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836834927-05:00 ^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836838774-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836842710-05:00 stream = self._network_backend.connect_tcp(**kwargs) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836846587-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836850494-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836854370-05:00 with map_exceptions(exc_map): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836858247-05:00 ^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836862104-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836865951-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836869827-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836873575-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836877501-05:00 map = {: , : } [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836881249-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836885105-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836888992-05:00 def map_exceptions(map: ExceptionMapping) -> typing.Iterator[None]: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836892889-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836896785-05:00 yield [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836900741-05:00 except Exception as exc: # noqa: PIE786 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836904688-05:00 for from_exc, to_exc in map.items(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836908525-05:00 if isinstance(exc, from_exc): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836912391-05:00 > raise to_exc(exc) from exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836916278-05:00 E httpcore.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836919966-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836923882-05:00 /usr/local/lib/python3.12/site-packages/httpcore/_exceptions.py:14: ConnectError [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836927610-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836931477-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836935204-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836939051-05:00 self = [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836950930-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836961864-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836968395-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836972331-05:00 def _request( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836976257-05:00 self, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836980204-05:00 method: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836984140-05:00 path: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836988046-05:00 *, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836991893-05:00 retry: bool = True, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836995730-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.836999587-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837003533-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837007440-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837011306-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837015203-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837019050-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837022956-05:00 > resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837026813-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837030471-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837034338-05:00 integrations/base.py:135: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837038215-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837042071-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:825: in request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837046008-05:00 return self.send(request, auth=auth, follow_redirects=follow_redirects) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837049855-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837053702-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:914: in send [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837057538-05:00 response = self._send_handling_auth( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837061385-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837065232-05:00 response = self._send_handling_redirects( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837069089-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837072966-05:00 response = self._send_single_request(request) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837076862-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837081594-05:00 /usr/local/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837086256-05:00 response = transport.handle_request(request) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837090958-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837099377-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837108194-05:00 with map_httpcore_exceptions(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837113065-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837128551-05:00 /usr/local/lib/python3.12/contextlib.py:158: in __exit__ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837133691-05:00 self.gen.throw(value) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837138869-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837143601-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837148561-05:00 @contextlib.contextmanager [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837153392-05:00 def map_httpcore_exceptions() -> typing.Iterator[None]: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837158233-05:00 global HTTPCORE_EXC_MAP [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837162935-05:00 if len(HTTPCORE_EXC_MAP) == 0: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837179604-05:00 HTTPCORE_EXC_MAP = _load_httpcore_exceptions() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837183610-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837187527-05:00 yield [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837191433-05:00 except Exception as exc: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837195270-05:00 mapped_exc = None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837199097-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837203014-05:00 for from_exc, to_exc in HTTPCORE_EXC_MAP.items(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837206930-05:00 if not isinstance(exc, from_exc): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837210896-05:00 continue [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837214773-05:00 # We want to map to the most specific exception we can find. [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837218640-05:00 # Eg if `exc` is an `httpcore.ReadTimeout`, we want to map to [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837222487-05:00 # `httpx.ReadTimeout`, not just `httpx.TimeoutException`. [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837226383-05:00 if mapped_exc is None or issubclass(to_exc, mapped_exc): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837230220-05:00 mapped_exc = to_exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837234077-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837237954-05:00 if mapped_exc is None: # pragma: no cover [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837241840-05:00 raise [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837245667-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837249494-05:00 message = str(exc) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837253331-05:00 > raise mapped_exc(message) from exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837257168-05:00 E httpx.ConnectError: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837260816-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837264693-05:00 /usr/local/lib/python3.12/site-packages/httpx/_transports/default.py:118: ConnectError [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837268351-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837272217-05:00 The above exception was the direct cause of the following exception: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837275876-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837279702-05:00 def test_rundeck_output_shape(): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837283549-05:00 rc = _live.live_rundeck() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837287466-05:00 > ex = _recent_execution(rc) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837291372-05:00 ^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837294991-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837298847-05:00 tests/contract/test_rundeck_contract.py:59: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837302764-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837306621-05:00 tests/contract/test_rundeck_contract.py:24: in _recent_execution [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837310467-05:00 data = _live.get_json(rc, f"/api/{ver}/project/{proj}/executions", max=1) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837314285-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837318112-05:00 tests/contract/_live.py:116: in get_json [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837321929-05:00 return client._get_json(path, params=params or None) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837325746-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837329583-05:00 integrations/base.py:174: in _get_json [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837333618-05:00 return self._request("GET", path, **kwargs).json() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837337415-05:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837341252-05:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837344930-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837348857-05:00 self = [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837352713-05:00 method = 'GET', path = '/api/48/project/storeminder/executions', retry = True [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837368966-05:00 kwargs = {'params': {'max': 1}} [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837372713-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837376580-05:00 def _request( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837380496-05:00 self, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837384373-05:00 method: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837388200-05:00 path: str, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837392107-05:00 *, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837395934-05:00 retry: bool = True, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837399751-05:00 **kwargs: Any, [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837403578-05:00 ) -> httpx.Response: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837407424-05:00 client = self._ensure_client() [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837411311-05:00 attempts = (self.config.retries + 1) if retry else 1 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837415178-05:00 last_exc: Exception | None = None [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837419015-05:00 for attempt in range(attempts): [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837422862-05:00 try: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837426778-05:00 resp = client.request(method, path, **kwargs) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837430655-05:00 except (httpx.TimeoutException, httpx.TransportError) as exc: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837434541-05:00 last_exc = exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837438418-05:00 if attempt + 1 < attempts: [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837442245-05:00 time.sleep(self._backoff(attempt)) [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837446092-05:00 continue [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837449929-05:00 > raise IntegrationUnavailable( [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837453796-05:00 f"{self.name}: {method} {path} failed: {exc}" [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837457692-05:00 ) from exc [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837461648-05:00 E integrations.errors.IntegrationUnavailable: rundeck: GET /api/48/project/storeminder/executions failed: [Errno 111] Connection refused [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837465336-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837469312-05:00 integrations/base.py:141: IntegrationUnavailable [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837473199-05:00 ================================ tests coverage ================================ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837477095-05:00 _______________ coverage: platform linux, python 3.12.7-final-0 ________________ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837480763-05:00 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837484720-05:00 Name Stmts Miss Branch BrPart Cover Missing [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837488646-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837492513-05:00 config/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837496379-05:00 config/admin_gate.py 90 90 30 0 0% 32-203 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837500266-05:00 config/readiness.py 75 75 12 0 0% 47-184 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837525027-05:00 config/settings.py 54 2 6 3 92% 130->138, 139, 141 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837529639-05:00 config/urls.py 9 9 0 0 0% 2-18 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837533566-05:00 fleet/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837545504-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-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837551071-05:00 fleet/api_consent.py 84 84 32 0 0% 23-170 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837565265-05:00 fleet/api_manifest.py 28 28 8 0 0% 38-90 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837569331-05:00 fleet/apps.py 5 0 0 0 100% [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837573317-05:00 fleet/contacts.py 26 18 8 0 24% 54, 63-70, 82-89, 102-129 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837577283-05:00 fleet/correlate.py 51 51 12 0 0% 28-170 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837581170-05:00 fleet/forms.py 17 8 4 0 43% 17-19, 22-31 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837585046-05:00 fleet/home.py 13 13 4 0 0% 28-51 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837588883-05:00 fleet/integrity.py 36 30 26 0 10% 23-28, 33-39, 44-47, 52-59, 64-70 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837592720-05:00 fleet/logs.py 113 113 18 0 0% 26-287 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837596726-05:00 fleet/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837601477-05:00 fleet/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837605384-05:00 fleet/management/commands/poll_selftests.py 24 24 6 0 0% 13-61 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837609251-05:00 fleet/management/commands/reconcile_consents.py 37 37 10 0 0% 19-96 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837613147-05:00 fleet/management/commands/sync_devices.py 222 222 84 0 0% 34-364 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837616994-05:00 fleet/manifest.py 16 16 2 0 0% 32-101 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837620841-05:00 fleet/models.py 136 0 0 0 100% [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837625175-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-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837629161-05:00 fleet/roles.py 27 14 6 0 39% 95-108, 129-133 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837633087-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-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837637004-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-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837641407-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-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837645294-05:00 fleet/tests_authority.py 125 125 2 0 0% 4-229 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837649151-05:00 fleet/tests_consent.py 149 149 0 0 0% 16-284 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837652988-05:00 fleet/tests_consent_event.py 113 113 2 0 0% 9-195 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837656825-05:00 fleet/tests_correlate.py 51 51 4 0 0% 2-83 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837660751-05:00 fleet/tests_logs.py 163 163 2 0 0% 11-242 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837664608-05:00 fleet/tests_manifest.py 80 80 0 0 0% 15-190 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837668455-05:00 fleet/tests_memberships.py 179 179 2 0 0% 15-305 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837679836-05:00 fleet/tests_selftest.py 130 130 0 0 0% 14-255 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837683703-05:00 fleet/tests_status.py 219 219 2 0 0% 8-377 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837687550-05:00 fleet/tests_sync.py 178 178 8 0 0% 21-343 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837691407-05:00 fleet/tests_sync_integration.py 29 29 2 0 0% 17-83 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837695273-05:00 fleet/urls_consent.py 3 3 0 0 0% 5-9 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837699230-05:00 fleet/urls_logs.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837703077-05:00 fleet/urls_manifest.py 3 3 0 0 0% 7-11 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837706923-05:00 fleet/urls_selftest.py 3 3 0 0 0% 6-10 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837715969-05:00 fleet/urls_status.py 4 4 0 0 0% 7-13 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837719975-05:00 fleet/validators.py 25 18 8 0 21% 27-29, 38-52 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837723911-05:00 integrations/__init__.py 18 5 0 0 72% 48, 52, 56, 60, 64 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837728474-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-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837732758-05:00 integrations/config.py 57 36 14 0 30% 18, 53-60, 64-66, 74-107, 111-116 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837736625-05:00 integrations/enroll.py 20 10 4 0 42% 28, 37-46, 50, 66 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837740482-05:00 integrations/errors.py 9 2 0 0 78% 35-36 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837744388-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-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837748265-05:00 integrations/headscale.py 33 8 12 4 64% 17, 26, 32-35, 42, 47->46, 49 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837752122-05:00 integrations/health.py 20 20 2 0 0% 6-43 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837756008-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-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837760193-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-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837764199-05:00 integrations/types.py 82 2 0 0 98% 68, 72 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837768066-05:00 integrations/urls.py 3 3 0 0 0% 1-5 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837771913-05:00 integrations/views.py 6 6 0 0 0% 7-16 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837775769-05:00 stores/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837779636-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-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837783533-05:00 stores/api.py 66 66 20 0 0% 35-159 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837795471-05:00 stores/apps.py 5 0 0 0 100% [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837799437-05:00 stores/forms.py 35 20 12 0 32% 73-77, 81-84, 87-105 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837803373-05:00 stores/geocoding.py 115 115 34 0 0% 15-210 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837807210-05:00 stores/management/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837811067-05:00 stores/management/commands/__init__.py 0 0 0 0 100% [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837815033-05:00 stores/management/commands/check_authority.py 39 39 14 0 0% 14-76 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837818880-05:00 stores/management/commands/migrate_owner_staff.py 73 73 28 0 0% 32-204 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837822737-05:00 stores/management/commands/notify_new_enrolls.py 36 36 8 0 0% 11-75 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837826604-05:00 stores/management/commands/reattach_store.py 50 50 14 0 0% 29-94 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837830460-05:00 stores/management/commands/seed_e2e_fleet.py 231 231 34 0 0% 52-623 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837834536-05:00 stores/management/commands/seed_pilot_stores.py 68 68 16 0 0% 20-141 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837838403-05:00 stores/management/commands/sync_roles.py 24 24 8 0 0% 12-54 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837842240-05:00 stores/map.py 69 69 18 0 0% 19-155 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837846116-05:00 stores/models.py 112 4 0 0 96% 185, 211, 228, 231 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837849953-05:00 stores/scoping.py 5 3 2 0 29% 22-24 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837853810-05:00 stores/tests_api.py 105 105 0 0 0% 12-174 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837857677-05:00 stores/tests_authority.py 128 128 4 0 0% 7-238 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837861534-05:00 stores/tests_basemap.py 41 41 4 0 0% 7-80 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837866017-05:00 stores/tests_collector_config.py 66 66 2 0 0% 8-104 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837869943-05:00 stores/tests_geo.py 72 72 0 0 0% 8-127 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837873810-05:00 stores/tests_map.py 68 68 2 0 0% 6-106 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837885450-05:00 stores/tests_pilot_seed.py 94 94 0 0 0% 7-175 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837889416-05:00 stores/tests_report_config.py 29 29 0 0 0% 6-47 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837893511-05:00 stores/urls.py 4 4 0 0 0% 1-6 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837897756-05:00 stores/views.py 39 39 4 0 0% 2-112 [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837901652-05:00 ----------------------------------------------------------------------------------------------- [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837905519-05:00 TOTAL 5404 4397 788 19 17% [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837909386-05:00 Coverage XML written to file coverage.xml [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837913223-05:00 =========================== short test summary info ============================ [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837917099-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-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837928819-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-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837932716-05:00 =================== 5 failed, 16 passed, 10 skipped in 9.76s =================== [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837936612-05:00 ===CONTRACT_RC=1=== [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.837940558-05:00 ----- end contract Job logs ----- [pod/app-contract-nightly-staging-trpft-contract-pod/step-run-contract] 2026-08-08T21:47:29.839794500-05:00 ==> contract run: Failed — STUB-VS-REALITY DRIFT or a live client broke — see the drift report in the Job logs above