tcoopman

tcoopman

I’m getting an %Mint.TransportError{reason: :econnrefused} for a request like this:

➜ curl -v http://localhost:8888
* processing: http://localhost:8888
*   Trying [::1]:8888...
* Connected to localhost (::1) port 8888
> GET / HTTP/1.1
> Host: localhost:8888
> User-Agent: curl/8.2.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Host: localhost:8888
< Date: Mon, 11 Sep 2023 10:24:31 GMT
< Connection: close
< X-Powered-By: PHP/8.2.9
< Content-Type: application/json
<
* Closing connection
{"status":"OK"}

But a similar request like this one works ok:

➜ curl -v http://localhost:5000
* processing: http://localhost:5000
*   Trying [::1]:5000...
* Connected to localhost (::1) port 5000
> GET / HTTP/1.1
> Host: localhost:5000
> User-Agent: curl/8.2.1
> Accept: */*
>
< HTTP/1.1 200 OK
< X-Powered-By: Express
< Content-Type: application/json; charset=utf-8
< Content-Length: 15
< ETag: W/"f-v/Y1JusChTxrQUzPtNAKycooOTA"
< Date: Mon, 11 Sep 2023 10:24:28 GMT
< Connection: keep-alive
< Keep-Alive: timeout=5
<
* Connection #0 to host localhost left intact
{"status":"OK"}

The second example is a standard Express server and the first one php. In the browser, curl, wget both requests work perfectly ok. Only Mint (and thus tools using Mint, like Req and Finch) gives me an error.

I can see that the responses are not exactly the same, but I don’t see why it should fail (content-length is nto a required header, and I’ve tried with setting the charset as well, but it doesn’t change the results)

Showing Posts 1 to 9

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

Hi @tcoopman if you’re getting :econnrefused then mint is saying it can’t establish a connection at all, not that it can’t make sense of the response. Can you show your mint code?

tcoopman

tcoopman OP

I’ve tried with both the Req and Mint example from: GitHub - wojtekmach/mix_install_examples: A collection of simple Elixir scripts that are using Mix.install/2. · GitHub
So I’m pretty sure it’s not about the code.

Also, tunneling the same request through ngrok makes it work.

dimitarvp

dimitarvp

Local proxy settings, maybe?

tcoopman

tcoopman OP

I don’t think so either. All ports work for the typescript server, none for the php server.

dimitarvp

dimitarvp

Well I would take out the huge hammer i.e. download Mint locally and specify that path in my mix.exs and then pepper that locally downloaded Mint with dbg. :person_shrugging:

Though it’s likely something else – maybe a security policy or some such – and it might turn out to be the wrong problem to focus on but still, you have to start somewhere.

tcoopman

tcoopman OP

yeah, no time to investigate currently :frowning: Might do that later though and see what’s going on…

tcoopman

tcoopman OP

I did find some time, and it’s an error coming from :gen_tcp.connect with these parameters:

[
  address: 'localhost',
  port: 5000,
  opts: [packet: :raw, mode: :binary, active: false],
  timeout: 30000
]

So I’m stuck…

(hint for debugging something locally, use Mix.install like this: Mix.install([{:mint, path: "."}]))

tcoopman

tcoopman OP

Ok, found the culprit.
Running php -S localhost:8000 results in the error, but php -S 127.0.0.1:8000 works.
I’m still confused why it’s only gen_tcp that struggles with the connection and no other tools.

hauleth

hauleth

curl tries to connect via both IPv4 and IPv6 while Mint probably tries only one of these (IPv4) when not asked to use IPv6 explicitly.

— All posts loaded —

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
apz
I’m new to elixir and just tried to install the elixirLS extension for VScode(ium) and it is throwing some errors that I would like help ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews