This breaks our unit tests.
2026-06-30T13:31:37.6102435Z ======================================================================
2026-06-30T13:31:37.6104236Z ERROR: test_canned_staging_area (hca_metadata_api.test.TestAccessorApi.test_canned_staging_area)
2026-06-30T13:31:37.6105333Z ----------------------------------------------------------------------
2026-06-30T13:31:37.6106125Z Traceback (most recent call last):
2026-06-30T13:31:37.6107336Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connection.py", line 204, in _new_conn
2026-06-30T13:31:37.6108651Z sock = connection.create_connection(
2026-06-30T13:31:37.6109110Z (self._dns_host, self.port),
2026-06-30T13:31:37.6109515Z ...<2 lines>...
2026-06-30T13:31:37.6109883Z socket_options=self.socket_options,
2026-06-30T13:31:37.6110309Z )
2026-06-30T13:31:37.6111161Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/util/connection.py", line 60, in create_connection
2026-06-30T13:31:37.6112305Z for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
2026-06-30T13:31:37.6113401Z ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6114386Z File "/opt/hostedtoolcache/Python/3.14.5/x64/lib/python3.14/socket.py", line 987, in getaddrinfo
2026-06-30T13:31:37.6115319Z for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
2026-06-30T13:31:37.6115994Z ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6116656Z socket.gaierror: [Errno -3] Temporary failure in name resolution
2026-06-30T13:31:37.6117091Z
2026-06-30T13:31:37.6117397Z The above exception was the direct cause of the following exception:
2026-06-30T13:31:37.6118029Z
2026-06-30T13:31:37.6118187Z Traceback (most recent call last):
2026-06-30T13:31:37.6118842Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 788, in urlopen
2026-06-30T13:31:37.6119434Z response = self._make_request(
2026-06-30T13:31:37.6119695Z conn,
2026-06-30T13:31:37.6119893Z ...<10 lines>...
2026-06-30T13:31:37.6120113Z **response_kw,
2026-06-30T13:31:37.6120427Z )
2026-06-30T13:31:37.6120782Z File "/home/runner/work/azul/azul/src/azul/http.py", line 177, in _make_request
2026-06-30T13:31:37.6121308Z return super()._make_request(*args, **kwargs) # type: ignore[misc]
2026-06-30T13:31:37.6121696Z ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6122317Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 488, in _make_request
2026-06-30T13:31:37.6123208Z raise new_e
2026-06-30T13:31:37.6123768Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 464, in _make_request
2026-06-30T13:31:37.6124400Z self._validate_conn(conn)
2026-06-30T13:31:37.6124645Z ~~~~~~~~~~~~~~~~~~~^^^^^^
2026-06-30T13:31:37.6125224Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 1106, in _validate_conn
2026-06-30T13:31:37.6125825Z conn.connect()
2026-06-30T13:31:37.6126039Z ~~~~~~~~~~~~^^
2026-06-30T13:31:37.6126529Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connection.py", line 759, in connect
2026-06-30T13:31:37.6127088Z self.sock = sock = self._new_conn()
2026-06-30T13:31:37.6127364Z ~~~~~~~~~~~~~~^^
2026-06-30T13:31:37.6128031Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connection.py", line 211, in _new_conn
2026-06-30T13:31:37.6128657Z raise NameResolutionError(self.host, self, e) from e
2026-06-30T13:31:37.6129643Z urllib3.exceptions.NameResolutionError: HTTPSConnection(host='schema.staging.data.humancellatlas.org', port=443): Failed to resolve 'schema.staging.data.humancellatlas.org' ([Errno -3] Temporary failure in name resolution)
2026-06-30T13:31:37.6130480Z
2026-06-30T13:31:37.6130666Z The above exception was the direct cause of the following exception:
2026-06-30T13:31:37.6130942Z
2026-06-30T13:31:37.6131115Z Traceback (most recent call last):
2026-06-30T13:31:37.6131624Z File "/home/runner/work/azul/azul/test/hca_metadata_api/test.py", line 521, in test_canned_staging_area
2026-06-30T13:31:37.6132396Z staging_area = factory.load_staging_area(staging_area_path)
2026-06-30T13:31:37.6133340Z File "/home/runner/work/azul/azul/src/humancellatlas/data/metadata/helpers/staging_area.py", line 247, in load_staging_area
2026-06-30T13:31:37.6133990Z return StagingArea(links=self._get_link_files(path),
2026-06-30T13:31:37.6134317Z ~~~~~~~~~~~~~~~~~~~~^^^^^^
2026-06-30T13:31:37.6134922Z File "/home/runner/work/azul/azul/src/humancellatlas/data/metadata/helpers/staging_area.py", line 256, in _get_link_files
2026-06-30T13:31:37.6135566Z return self._get_files(path=path / 'links', file_cls=LinksFile)
2026-06-30T13:31:37.6135941Z ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6136520Z File "/home/runner/work/azul/azul/src/humancellatlas/data/metadata/helpers/staging_area.py", line 295, in _get_files
2026-06-30T13:31:37.6137096Z json_file = JsonFile.from_json(file_name, content)
2026-06-30T13:31:37.6137661Z File "/home/runner/work/azul/azul/src/humancellatlas/data/metadata/helpers/staging_area.py", line 71, in from_json
2026-06-30T13:31:37.6138197Z return LinksFile(uuid=subgraph_id,
2026-06-30T13:31:37.6138465Z version=version,
2026-06-30T13:31:37.6138722Z name=file_name,
2026-06-30T13:31:37.6138969Z content=content,
2026-06-30T13:31:37.6139227Z project_id=project_id)
2026-06-30T13:31:37.6139884Z File "<attrs generated methods humancellatlas.data.metadata.helpers.staging_area.LinksFile>", line 43, in __init__
2026-06-30T13:31:37.6140423Z self.__attrs_post_init__()
2026-06-30T13:31:37.6140655Z ~~~~~~~~~~~~~~~~~~~~~~~~^^
2026-06-30T13:31:37.6141193Z File "/home/runner/work/azul/azul/src/humancellatlas/data/metadata/helpers/staging_area.py", line 59, in __attrs_post_init__
2026-06-30T13:31:37.6141886Z self._validator.validate_json(self.content, self.name)
2026-06-30T13:31:37.6142230Z ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6143066Z File "/home/runner/work/azul/azul/src/humancellatlas/data/metadata/helpers/schema_validation.py", line 38, in validate_json
2026-06-30T13:31:37.6143733Z schema = self._download_json_file(file_json['describedBy'])
2026-06-30T13:31:37.6144408Z File "/home/runner/work/azul/azul/src/humancellatlas/data/metadata/helpers/schema_validation.py", line 51, in _download_json_file
2026-06-30T13:31:37.6145087Z response = self._http_client.request('GET', file_url, redirect=False)
2026-06-30T13:31:37.6145731Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/_request_methods.py", line 135, in request
2026-06-30T13:31:37.6146271Z return self.request_encode_url(
2026-06-30T13:31:37.6146516Z ~~~~~~~~~~~~~~~~~~~~~~~^
2026-06-30T13:31:37.6146747Z method,
2026-06-30T13:31:37.6146936Z ^^^^^^^
2026-06-30T13:31:37.6147118Z ...<3 lines>...
2026-06-30T13:31:37.6147320Z **urlopen_kw,
2026-06-30T13:31:37.6147518Z ^^^^^^^^^^^^^
2026-06-30T13:31:37.6147713Z )
2026-06-30T13:31:37.6147880Z ^
2026-06-30T13:31:37.6148384Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/_request_methods.py", line 182, in request_encode_url
2026-06-30T13:31:37.6149071Z return self.urlopen(method, url, **extra_kw)
2026-06-30T13:31:37.6149373Z ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6149762Z File "/home/runner/work/azul/azul/src/azul/http.py", line 490, in urlopen
2026-06-30T13:31:37.6150263Z response = super().urlopen(method, url, *args, retries=inner_retries, **kwargs)
2026-06-30T13:31:37.6150777Z File "/home/runner/work/azul/azul/src/azul/http.py", line 53, in urlopen
2026-06-30T13:31:37.6151171Z return self._inner.urlopen(*args, **kwargs)
2026-06-30T13:31:37.6151531Z ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6151920Z File "/home/runner/work/azul/azul/src/azul/http.py", line 148, in urlopen
2026-06-30T13:31:37.6152372Z response = super().urlopen(method, url, *args, body=body, **kwargs)
2026-06-30T13:31:37.6153102Z File "/home/runner/work/azul/azul/src/azul/http.py", line 53, in urlopen
2026-06-30T13:31:37.6153534Z return self._inner.urlopen(*args, **kwargs)
2026-06-30T13:31:37.6153820Z ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6154206Z File "/home/runner/work/azul/azul/src/azul/http.py", line 189, in urlopen
2026-06-30T13:31:37.6154639Z return super().urlopen(method, url, *args, **kwargs)
2026-06-30T13:31:37.6154960Z ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6155360Z File "/home/runner/work/azul/azul/src/azul/http.py", line 53, in urlopen
2026-06-30T13:31:37.6155753Z return self._inner.urlopen(*args, **kwargs)
2026-06-30T13:31:37.6156039Z ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6156567Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/poolmanager.py", line 457, in urlopen
2026-06-30T13:31:37.6157142Z response = conn.urlopen(method, u.request_uri, **kw)
2026-06-30T13:31:37.6157722Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 872, in urlopen
2026-06-30T13:31:37.6158262Z return self.urlopen(
2026-06-30T13:31:37.6158482Z ~~~~~~~~~~~~^
2026-06-30T13:31:37.6158679Z method,
2026-06-30T13:31:37.6158867Z ^^^^^^^
2026-06-30T13:31:37.6159155Z ...<13 lines>...
2026-06-30T13:31:37.6159357Z **response_kw,
2026-06-30T13:31:37.6167962Z ^^^^^^^^^^^^^^
2026-06-30T13:31:37.6168269Z )
2026-06-30T13:31:37.6168457Z ^
2026-06-30T13:31:37.6168971Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 872, in urlopen
2026-06-30T13:31:37.6169551Z return self.urlopen(
2026-06-30T13:31:37.6169919Z ~~~~~~~~~~~~^
2026-06-30T13:31:37.6170125Z method,
2026-06-30T13:31:37.6170312Z ^^^^^^^
2026-06-30T13:31:37.6170502Z ...<13 lines>...
2026-06-30T13:31:37.6170705Z **response_kw,
2026-06-30T13:31:37.6170915Z ^^^^^^^^^^^^^^
2026-06-30T13:31:37.6171110Z )
2026-06-30T13:31:37.6171280Z ^
2026-06-30T13:31:37.6171773Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 842, in urlopen
2026-06-30T13:31:37.6172324Z retries = retries.increment(
2026-06-30T13:31:37.6172676Z method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]
2026-06-30T13:31:37.6173488Z )
2026-06-30T13:31:37.6173972Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/util/retry.py", line 543, in increment
2026-06-30T13:31:37.6174660Z raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
2026-06-30T13:31:37.6175099Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6176919Z urllib3.exceptions.MaxRetryError: humancellatlas.data.metadata.helpers.schema_validation.LoggingHTTPSConnectionPool(host='schema.staging.data.humancellatlas.org', port=443): Max retries exceeded with url: /system/3.1.0/links (Caused by NameResolutionError("HTTPSConnection(host='schema.staging.data.humancellatlas.org', port=443): Failed to resolve 'schema.staging.data.humancellatlas.org' ([Errno -3] Temporary failure in name resolution)"))
2026-06-30T13:31:37.6178611Z
2026-06-30T13:31:37.6178734Z ======================================================================
2026-06-30T13:31:37.6179197Z ERROR: test_schema_validation (hca_metadata_api.test.TestSchema.test_schema_validation)
2026-06-30T13:31:37.6179690Z ----------------------------------------------------------------------
2026-06-30T13:31:37.6180024Z Traceback (most recent call last):
2026-06-30T13:31:37.6180638Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connection.py", line 204, in _new_conn
2026-06-30T13:31:37.6181194Z sock = connection.create_connection(
2026-06-30T13:31:37.6181481Z (self._dns_host, self.port),
2026-06-30T13:31:37.6181729Z ...<2 lines>...
2026-06-30T13:31:37.6181954Z socket_options=self.socket_options,
2026-06-30T13:31:37.6182220Z )
2026-06-30T13:31:37.6182736Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/util/connection.py", line 60, in create_connection
2026-06-30T13:31:37.6183601Z for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
2026-06-30T13:31:37.6184193Z ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6185017Z File "/opt/hostedtoolcache/Python/3.14.5/x64/lib/python3.14/socket.py", line 987, in getaddrinfo
2026-06-30T13:31:37.6185872Z for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
2026-06-30T13:31:37.6186506Z ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6187137Z socket.gaierror: [Errno -3] Temporary failure in name resolution
2026-06-30T13:31:37.6187586Z
2026-06-30T13:31:37.6187884Z The above exception was the direct cause of the following exception:
2026-06-30T13:31:37.6188312Z
2026-06-30T13:31:37.6188477Z Traceback (most recent call last):
2026-06-30T13:31:37.6189391Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 788, in urlopen
2026-06-30T13:31:37.6190360Z response = self._make_request(
2026-06-30T13:31:37.6190755Z conn,
2026-06-30T13:31:37.6191246Z ...<10 lines>...
2026-06-30T13:31:37.6191603Z **response_kw,
2026-06-30T13:31:37.6191973Z )
2026-06-30T13:31:37.6192584Z File "/home/runner/work/azul/azul/src/azul/http.py", line 177, in _make_request
2026-06-30T13:31:37.6193722Z return super()._make_request(*args, **kwargs) # type: ignore[misc]
2026-06-30T13:31:37.6194378Z ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6195599Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 488, in _make_request
2026-06-30T13:31:37.6196614Z raise new_e
2026-06-30T13:31:37.6197543Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 464, in _make_request
2026-06-30T13:31:37.6198536Z self._validate_conn(conn)
2026-06-30T13:31:37.6199030Z ~~~~~~~~~~~~~~~~~~~^^^^^^
2026-06-30T13:31:37.6200021Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 1106, in _validate_conn
2026-06-30T13:31:37.6201041Z conn.connect()
2026-06-30T13:31:37.6201394Z ~~~~~~~~~~~~^^
2026-06-30T13:31:37.6202221Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connection.py", line 759, in connect
2026-06-30T13:31:37.6203415Z self.sock = sock = self._new_conn()
2026-06-30T13:31:37.6203894Z ~~~~~~~~~~~~~~^^
2026-06-30T13:31:37.6204932Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connection.py", line 211, in _new_conn
2026-06-30T13:31:37.6206038Z raise NameResolutionError(self.host, self, e) from e
2026-06-30T13:31:37.6207613Z urllib3.exceptions.NameResolutionError: HTTPSConnection(host='schema.humancellatlas.org', port=443): Failed to resolve 'schema.humancellatlas.org' ([Errno -3] Temporary failure in name resolution)
2026-06-30T13:31:37.6209073Z
2026-06-30T13:31:37.6209429Z The above exception was the direct cause of the following exception:
2026-06-30T13:31:37.6209953Z
2026-06-30T13:31:37.6210142Z Traceback (most recent call last):
2026-06-30T13:31:37.6211039Z File "/home/runner/work/azul/azul/test/hca_metadata_api/test.py", line 808, in test_schema_validation
2026-06-30T13:31:37.6211975Z validator.validate_json(test_data, 'foo.json')
2026-06-30T13:31:37.6212528Z ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6214066Z File "/home/runner/work/azul/azul/src/humancellatlas/data/metadata/helpers/schema_validation.py", line 38, in validate_json
2026-06-30T13:31:37.6215299Z schema = self._download_json_file(file_json['describedBy'])
2026-06-30T13:31:37.6216526Z File "/home/runner/work/azul/azul/src/humancellatlas/data/metadata/helpers/schema_validation.py", line 51, in _download_json_file
2026-06-30T13:31:37.6217783Z response = self._http_client.request('GET', file_url, redirect=False)
2026-06-30T13:31:37.6218968Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/_request_methods.py", line 135, in request
2026-06-30T13:31:37.6219958Z return self.request_encode_url(
2026-06-30T13:31:37.6220403Z ~~~~~~~~~~~~~~~~~~~~~~~^
2026-06-30T13:31:37.6220819Z method,
2026-06-30T13:31:37.6221145Z ^^^^^^^
2026-06-30T13:31:37.6221476Z ...<3 lines>...
2026-06-30T13:31:37.6221826Z **urlopen_kw,
2026-06-30T13:31:37.6222188Z ^^^^^^^^^^^^^
2026-06-30T13:31:37.6222523Z )
2026-06-30T13:31:37.6223050Z ^
2026-06-30T13:31:37.6224020Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/_request_methods.py", line 182, in request_encode_url
2026-06-30T13:31:37.6225140Z return self.urlopen(method, url, **extra_kw)
2026-06-30T13:31:37.6225675Z ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6226404Z File "/home/runner/work/azul/azul/src/azul/http.py", line 490, in urlopen
2026-06-30T13:31:37.6227330Z response = super().urlopen(method, url, *args, retries=inner_retries, **kwargs)
2026-06-30T13:31:37.6228271Z File "/home/runner/work/azul/azul/src/azul/http.py", line 53, in urlopen
2026-06-30T13:31:37.6229164Z return self._inner.urlopen(*args, **kwargs)
2026-06-30T13:31:37.6229694Z ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6230384Z File "/home/runner/work/azul/azul/src/azul/http.py", line 148, in urlopen
2026-06-30T13:31:37.6231216Z response = super().urlopen(method, url, *args, body=body, **kwargs)
2026-06-30T13:31:37.6232090Z File "/home/runner/work/azul/azul/src/azul/http.py", line 53, in urlopen
2026-06-30T13:31:37.6233187Z return self._inner.urlopen(*args, **kwargs)
2026-06-30T13:31:37.6233709Z ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6234420Z File "/home/runner/work/azul/azul/src/azul/http.py", line 189, in urlopen
2026-06-30T13:31:37.6235171Z return super().urlopen(method, url, *args, **kwargs)
2026-06-30T13:31:37.6235766Z ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6236482Z File "/home/runner/work/azul/azul/src/azul/http.py", line 53, in urlopen
2026-06-30T13:31:37.6237239Z return self._inner.urlopen(*args, **kwargs)
2026-06-30T13:31:37.6237757Z ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6238819Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/poolmanager.py", line 457, in urlopen
2026-06-30T13:31:37.6239854Z response = conn.urlopen(method, u.request_uri, **kw)
2026-06-30T13:31:37.6240940Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 872, in urlopen
2026-06-30T13:31:37.6241903Z return self.urlopen(
2026-06-30T13:31:37.6242280Z ~~~~~~~~~~~~^
2026-06-30T13:31:37.6242627Z method,
2026-06-30T13:31:37.6243161Z ^^^^^^^
2026-06-30T13:31:37.6243487Z ...<13 lines>...
2026-06-30T13:31:37.6243859Z **response_kw,
2026-06-30T13:31:37.6244361Z ^^^^^^^^^^^^^^
2026-06-30T13:31:37.6244720Z )
2026-06-30T13:31:37.6245013Z ^
2026-06-30T13:31:37.6245847Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 872, in urlopen
2026-06-30T13:31:37.6246821Z return self.urlopen(
2026-06-30T13:31:37.6247204Z ~~~~~~~~~~~~^
2026-06-30T13:31:37.6247567Z method,
2026-06-30T13:31:37.6247895Z ^^^^^^^
2026-06-30T13:31:37.6248234Z ...<13 lines>...
2026-06-30T13:31:37.6248589Z **response_kw,
2026-06-30T13:31:37.6249093Z ^^^^^^^^^^^^^^
2026-06-30T13:31:37.6249465Z )
2026-06-30T13:31:37.6249760Z ^
2026-06-30T13:31:37.6250607Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py", line 842, in urlopen
2026-06-30T13:31:37.6251596Z retries = retries.increment(
2026-06-30T13:31:37.6252198Z method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]
2026-06-30T13:31:37.6253101Z )
2026-06-30T13:31:37.6253957Z File "/home/runner/work/azul/azul/.venv/lib/python3.14/site-packages/urllib3/util/retry.py", line 543, in increment
2026-06-30T13:31:37.6255222Z raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
2026-06-30T13:31:37.6255973Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-06-30T13:31:37.6258874Z urllib3.exceptions.MaxRetryError: humancellatlas.data.metadata.helpers.schema_validation.LoggingHTTPSConnectionPool(host='schema.humancellatlas.org', port=443): Max retries exceeded with url: /type/file/9.6.0/sequence_file (Caused by NameResolutionError("HTTPSConnection(host='schema.humancellatlas.org', port=443): Failed to resolve 'schema.humancellatlas.org' ([Errno -3] Temporary failure in name resolution)"))
2026-06-30T13:31:37.6261601Z
2026-06-30T13:31:37.6261882Z ----------------------------------------------------------------------
2026-06-30T13:31:37.6262486Z Ran 501 tests in 584.725s
2026-06-30T13:31:37.6262743Z
2026-06-30T13:31:37.6263132Z FAILED (errors=2, skipped=3)
2026-06-30T13:31:39.4207057Z make: *** [Makefile:270: test] Error 1
This breaks our unit tests.