HTTPX/requests cannot send REST requests to other service

I am trying to get API data from another service I have in the same project. The code is not changed in a week and it suddenly stopped working today. The service making the request is a Pycord bot towards FastAPI service
Solution:
I need hypercorn
Jump to solution
20 Replies
Percy
Percyβ€’2mo ago
Project ID: ff816097-dff3-4925-9c7d-c91d0c42ee5b
𝘬𝘒𝘱𝘱𝘺
ff816097-dff3-4925-9c7d-c91d0c42ee5b Also want to note, using public or private networking seems to not make a difference, I can access the public one via browser but not with the service
Brody
Brodyβ€’2mo ago
can you please define stopped working? that's extremely vague
𝘬𝘒𝘱𝘱𝘺
Establishing connection with the httpx/requests to the service fails The end of the log contains this message for httpx:
File "/opt/venv/lib/python3.11/site-packages/httpx/_transports/default.py", line 372, in handle_async_request
with map_httpcore_exceptions():
File "/root/.nix-profile/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/opt/venv/lib/python3.11/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: All connection attempts failed
[INFO] client: Cleaning up tasks.
[INFO] client: Cleaning up after 2 tasks.
[INFO] client: All tasks finished cancelling.
[INFO] client: Closing the event loop.
File "/opt/venv/lib/python3.11/site-packages/httpx/_transports/default.py", line 372, in handle_async_request
with map_httpcore_exceptions():
File "/root/.nix-profile/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/opt/venv/lib/python3.11/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ConnectError: All connection attempts failed
[INFO] client: Cleaning up tasks.
[INFO] client: Cleaning up after 2 tasks.
[INFO] client: All tasks finished cancelling.
[INFO] client: Closing the event loop.
And this for requests:
File "/opt/venv/lib/python3.11/site-packages/requests/adapters.py", line 700, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='enigmacollective_backend.railway.internal', port=8000): Max retries exceeded with url: /guild_settings/1130063785005174785 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f8767b2f290>: Failed to establish a new connection: [Errno 111] Connection refused'))
File "/opt/venv/lib/python3.11/site-packages/requests/adapters.py", line 700, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='enigmacollective_backend.railway.internal', port=8000): Max retries exceeded with url: /guild_settings/1130063785005174785 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f8767b2f290>: Failed to establish a new connection: [Errno 111] Connection refused'))
Both services worked, as I printed the url and could see the docs of FastAPI
Brody
Brodyβ€’2mo ago
can you please provide the url in question?
Brody
Brodyβ€’2mo ago
how do you know its listening on port 8000?
𝘬𝘒𝘱𝘱𝘺
I use Railway's variables like this: http://${{enigmacollective_backend.RAILWAY_PRIVATE_DOMAIN}}:${{enigmacollective_backend.PORT}}
Brody
Brodyβ€’2mo ago
that is definitely a good start, but doesn't quite answer my question
𝘬𝘒𝘱𝘱𝘺
Are you refering to the settings of the service? In the logs of the deployment the internal port of FastAPI is 8000
You reached the start of the range β†’ Oct 2, 2024 9:12 PM
WARNING: ASGI app factory detected. Using it, but please consider setting the --factory flag explicitly.
INFO: Started server process [7]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
You reached the start of the range β†’ Oct 2, 2024 9:12 PM
WARNING: ASGI app factory detected. Using it, but please consider setting the --factory flag explicitly.
INFO: Started server process [7]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
but maybe the service settings got messed up?
Brody
Brodyβ€’2mo ago
are you aware that the private network is IPv6 only?
Brody
Brodyβ€’2mo ago
you are listening on a IPv4 address
𝘬𝘒𝘱𝘱𝘺
ah that's why
Solution
𝘬𝘒𝘱𝘱𝘺
I need hypercorn
Brody
Brodyβ€’2mo ago
exactly
𝘬𝘒𝘱𝘱𝘺
cool, thanks
Brody
Brodyβ€’2mo ago
hypercorn will dual stack bind when you use ::
𝘬𝘒𝘱𝘱𝘺
i was experimenting with uvicorn so that's probably a leftover big thanks Brody, you are my hero πŸ˜„
Brody
Brodyβ€’2mo ago
no problem!
Want results from more Discord servers?
Add your server