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

2 years 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

2 years ago

ff816097-dff3-4925-9c7d-c91d0c42ee5b


karlojacmenjak
HOBBYOP

2 years 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


2 years ago

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


karlojacmenjak
HOBBYOP

2 years ago

Establishing connection with the httpx/requests to the service fails


karlojacmenjak
HOBBYOP

2 years ago

The end of the log contains this message for httpx:

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

2 years 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

2 years ago

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


karlojacmenjak
HOBBYOP

2 years ago

of FastAPI


2 years ago

can you please provide the url in question?



2 years ago

how do you know its listening on port 8000?


karlojacmenjak
HOBBYOP

2 years ago

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


2 years ago

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


karlojacmenjak
HOBBYOP

2 years 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

2 years ago

but maybe the service settings got messed up?


2 years ago

are you aware that the private network is IPv6 only?


karlojacmenjak
HOBBYOP

2 years ago

yes


2 years ago

you are listening on a IPv4 address


karlojacmenjak
HOBBYOP

2 years ago

ah that's why


karlojacmenjak
HOBBYOP

2 years ago

I need hypercorn


2 years ago

exactly


karlojacmenjak
HOBBYOP

2 years ago

cool, thanks


2 years ago

hypercorn will dual stack bind when you use ::


karlojacmenjak
HOBBYOP

2 years ago

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


karlojacmenjak
HOBBYOP

2 years ago

big thanks Brody, you are my hero 😄


2 years ago

no problem!


Welcome!

Sign in to your Railway account to join the conversation.

Loading...