HTTPX/requests cannot send REST requests to other service
karlojacmenjak
HOBBYOP

a year ago

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

26 Replies

karlojacmenjak
HOBBYOP

a year ago

ff816097-dff3-4925-9c7d-c91d0c42ee5b


karlojacmenjak
HOBBYOP

a year ago

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


a year ago

can you please define stopped working? that's extremely vague


karlojacmenjak
HOBBYOP

a year ago

Establishing connection with the httpx/requests to the service fails


karlojacmenjak
HOBBYOP

a year ago

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.


karlojacmenjak
HOBBYOP

a year ago

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(': Failed to establish a new connection: [Errno 111] Connection refused'))

karlojacmenjak
HOBBYOP

a year ago

Both services worked, as I printed the url and could see the docs


karlojacmenjak
HOBBYOP

a year ago

of FastAPI


a year ago

can you please provide the url in question?



a year ago

how do you know its listening on port 8000?


karlojacmenjak
HOBBYOP

a year ago

I use Railway's variables like this: http://${{enigmacollective_backend.RAILWAY_PRIVATE_DOMAIN}}:${{enigmacollective_backend.PORT}}


a year ago

that is definitely a good start, but doesn't quite answer my question


karlojacmenjak
HOBBYOP

a year ago

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)

karlojacmenjak
HOBBYOP

a year ago

but maybe the service settings got messed up?


a year ago

are you aware that the private network is IPv6 only?


karlojacmenjak
HOBBYOP

a year ago

yes


a year ago

you are listening on a IPv4 address


karlojacmenjak
HOBBYOP

a year ago

ah that's why


karlojacmenjak
HOBBYOP

a year ago

I need hypercorn


a year ago

exactly


karlojacmenjak
HOBBYOP

a year ago

cool, thanks


a year ago

hypercorn will dual stack bind when you use ::


karlojacmenjak
HOBBYOP

a year ago

i was experimenting with uvicorn so that's probably a leftover


karlojacmenjak
HOBBYOP

a year ago

big thanks Brody, you are my hero 😄


a year ago

no problem!


Loading...