dstack
dstack copied to clipboard
[Bug]: The 'get_offers_by_requirements' function checks all backends for offers, but doesn't use the backend filter.
dstack version
0.16.1
Python version
3.11.8
Host OS
Arch Linux
Host Arch
x86_64
What happened?
There are two bugs when I run dstack pool add -b cudo for example.
- [ ] I select the Cudo provider, but the request also goes to the DataCrunch provider.
- [ ] The server shows a large stack trace of the network exception. We need to handle network exceptions.
CLI logs
No response
Server logs
The admin token is 31c3a0bb-268e-4129-97f0-f9dd143eaeed
The dstack server (no version) is running at http://127.0.0.1:3000
ERROR: Exception in ASGI application
+ Exception Group Traceback (most recent call last):
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
| yield
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 190, in __call__
| async with anyio.create_task_group() as task_group:
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 678, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 412, in run_asgi
| result = await app( # type: ignore[func-returns-value]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__
| return await self.app(scope, receive, send)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
| raise exc
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
| await self.app(scope, receive, _send)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
| with collapse_excgroups():
| File "/usr/lib/python3.11/contextlib.py", line 158, in __exit__
| self.gen.throw(typ, value, traceback)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
| raise exc
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/app.py", line 180, in check_client_version
| return await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next
| raise app_exc
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
| with collapse_excgroups():
| File "/usr/lib/python3.11/contextlib.py", line 158, in __exit__
| self.gen.throw(typ, value, traceback)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
| raise exc
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/app.py", line 160, in log_request
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next
| raise app_exc
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
| raise exc
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| await app(scope, receive, sender)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/routing.py", line 758, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/routing.py", line 778, in app
| await route.handle(scope, receive, send)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/routing.py", line 299, in handle
| await self.app(scope, receive, send)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/routing.py", line 79, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
| raise exc
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| await app(scope, receive, sender)
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/routing.py", line 74, in app
| response = await func(request)
| ^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/fastapi/routing.py", line 278, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/routers/runs.py", line 136, in get_offers
| offers = await runs.get_create_instance_offers(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/services/runs.py", line 413, in get_create_instance_offers
| offers = await get_offers_by_requirements(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/services/runs.py", line 242, in get_offers_by_requirements
| backends: List[Backend] = await backends_services.get_project_backends(project=project)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/services/backends/__init__.py", line 263, in get_project_backends
| backends_with_models = await get_project_backends_with_models(project)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/services/backends/__init__.py", line 249, in get_project_backends_with_models
| backend = await run_async(configurator.get_backend, backend_model)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/utils/common.py", line 13, in run_async
| return await asyncio.get_running_loop().run_in_executor(None, func_with_args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
| result = self.fn(*self.args, **self.kwargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/services/backends/configurators/datacrunch.py", line 68, in get_backend
| return DataCrunchBackend(config=config)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/core/backends/datacrunch/__init__.py", line 12, in __init__
| self._compute = DataCrunchCompute(self.config)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/core/backends/datacrunch/compute.py", line 29, in __init__
| self.api_client = DataCrunchAPIClient(config.creds.client_id, config.creds.client_secret)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/core/backends/datacrunch/api_client.py", line 14, in __init__
| self.client = DataCrunchClient(client_id, client_secret)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/datacrunch/datacrunch.py", line 37, in __init__
| self._http_client: HTTPClient = HTTPClient(
| ^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/datacrunch/http_client/http_client.py", line 33, in __init__
| self._auth_service.authenticate()
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/datacrunch/authentication/authentication.py", line 42, in authenticate
| response = requests.post(
| ^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/requests/api.py", line 115, in post
| return request("post", url, data=data, json=json, **kwargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/requests/api.py", line 59, in request
| return session.request(method=method, url=url, **kwargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/requests/sessions.py", line 589, in request
| resp = self.send(prep, **send_kwargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/requests/sessions.py", line 703, in send
| r = adapter.send(request, **kwargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/requests/adapters.py", line 519, in send
| raise ConnectionError(e, request=request)
| requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.datacrunch.io', port=443): Max retries exceeded with url: /v1/oauth2/token (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x72355d702610>: Failed to establish a new connection: [Errno 101] Network is unreachable'))
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/uvicorn/protocols/http/h11_impl.py", line 412, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
await self.middleware_stack(scope, receive, send)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
raise exc
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
await self.app(scope, receive, _send)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
with collapse_excgroups():
File "/usr/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
raise exc
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/app.py", line 180, in check_client_version
return await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next
raise app_exc
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
with collapse_excgroups():
File "/usr/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
raise exc
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/app.py", line 160, in log_request
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next
raise app_exc
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
raise exc
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
await app(scope, receive, sender)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/routing.py", line 758, in __call__
await self.middleware_stack(scope, receive, send)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/routing.py", line 778, in app
await route.handle(scope, receive, send)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/routing.py", line 299, in handle
await self.app(scope, receive, send)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/routing.py", line 79, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
raise exc
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
await app(scope, receive, sender)
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/starlette/routing.py", line 74, in app
response = await func(request)
^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/fastapi/routing.py", line 278, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/routers/runs.py", line 136, in get_offers
offers = await runs.get_create_instance_offers(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/services/runs.py", line 413, in get_create_instance_offers
offers = await get_offers_by_requirements(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/services/runs.py", line 242, in get_offers_by_requirements
backends: List[Backend] = await backends_services.get_project_backends(project=project)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/services/backends/__init__.py", line 263, in get_project_backends
backends_with_models = await get_project_backends_with_models(project)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/services/backends/__init__.py", line 249, in get_project_backends_with_models
backend = await run_async(configurator.get_backend, backend_model)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/utils/common.py", line 13, in run_async
return await asyncio.get_running_loop().run_in_executor(None, func_with_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/server/services/backends/configurators/datacrunch.py", line 68, in get_backend
return DataCrunchBackend(config=config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/core/backends/datacrunch/__init__.py", line 12, in __init__
self._compute = DataCrunchCompute(self.config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/core/backends/datacrunch/compute.py", line 29, in __init__
self.api_client = DataCrunchAPIClient(config.creds.client_id, config.creds.client_secret)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/dstack/_internal/core/backends/datacrunch/api_client.py", line 14, in __init__
self.client = DataCrunchClient(client_id, client_secret)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/datacrunch/datacrunch.py", line 37, in __init__
self._http_client: HTTPClient = HTTPClient(
^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/datacrunch/http_client/http_client.py", line 33, in __init__
self._auth_service.authenticate()
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/datacrunch/authentication/authentication.py", line 42, in authenticate
response = requests.post(
^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/requests/api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/thebits/dstack/dstack/.direnv/python-3.11/lib/python3.11/site-packages/requests/adapters.py", line 519, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.datacrunch.io', port=443): Max retries exceeded with url: /v1/oauth2/token (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x72355d702610>: Failed to establish a new connection: [Errno 101] Network is unreachable'))
### Runner logs
_No response_
### Additional Information
_No response_
This issue is stale because it has been open for 30 days with no activity.
This issue was closed because it has been inactive for 14 days since being marked as stale.