Fly latency

Hi, is there something going on w/ fly right now? Commands like fly ssh console now takes 5+ seconds to connect and some of my apps take up to 10+ seconds to load.

Can you try a mtr to your app domain and, if you can still reach the app, can you try curl -v -H 'flyio-debug: doit' https://your_app_domain and share the results?

Hi Peter, thanks for looking. My mtr looks normal.

Curl:

* Host :443 was resolved.
* IPv6: (none)
* IPv4: 104.21.y, 172.67.y
*  Trying 104.21.y:443…
* Connected to  (104.21.72.y) port 443
* ALPN: curl offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/ssl/cert.pem
* CApath: none
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256 / [blank] / UNDEF
* ALPN: server accepted h2
* Server certificate:
* subject: CN=
* start date: May 4 11:49:55 2026 GMT
* expire date: Aug 2 12:48:40 2026 GMT
* subjectAltName: host “” matched cert’s “”
* issuer: C=US; O=Google Trust Services; CN=WE1
* SSL certificate verify ok.
* using HTTP/2
* [HTTP/2] [1] OPENED stream for
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: ]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.7.1]
* [HTTP/2] [1] [accept: */*]
* [HTTP/2] [1] [flyio-debug: doit]

GET / HTTP/2
Host:
User-Agent: curl/8.7.1
Accept: */*
flyio-debug: doit

* Request completely sent off

Then it hangs for 30 seconds before the HTML returns.

My memory and CPU usage is minimal, no code changes recently. The latency just started recently.

fly ssh console now takes over 10 seconds and sometimes get “Failed to list active CMs… connection reset by peer”

Please include -H 'flyio-debug: doit' in your HTTP curl.

I believe I did, eg:

* [HTTP/2] [1] [flyio-debug: doit]

GET / HTTP/2
Host:
User-Agent: curl/8.7.1
Accept: */*
flyio-debug: doit

And post the response headers, too, though, :sweat_smile:.

The fly-* response headers should include a large JSON blob that details things like which exact edge node handled the request, which of your app Machines it decided to route to, etc.

(That plus the fly-request-id allows them to trace things in the Fly Proxy’s logs, I believe.)

Oh yeah my bad - the curl response took over a minute and I forgot to wait for the response headers:
< via: 1.1 fly.io
< fly-request-id: 01KSR6P6GEEXRD8K73Y8CQ5V8B-sjc
< flyio-debug: {“n”:“edge-cf-sjc1-96e2”,“nr”:“sjc”,“ra”:“108.162.245.197”,“rf”:“Verbatim”,“sr”:“sjc”,“sdc”:“sjc1”,“sid”:“874d33a0222268”,“st”:0,“nrtt”:0,“bn”:“worker-cf-sjc1-9fa2”,“mhn”:null,“mrtt”:null}