I’ve been deploying my app via the GraphQL API and I’m having mixed results. The first deployment of an application seems to work fine. Trying to update the app seems to brick it.
Right now (on sandbox-cld-adamb-batch-8) I’m seeing request errors like: “Client network socket disconnected before secure TLS connection was established”
I don’t see anything interesting in the logs, so it seems like my traffic isn’t making to userland in the VM.
Poking around the API manually suggests that the application may not be placed properly. The only solution I’ve found so far is to delete the app and start over, but that’s … not such a good way to do deployments
Hmm, this may happen if your app is restarting frequently because it becomes unhealthy. We only handle handshakes for apps that have at least 1 instance up and running.
There’s nothing obvious in the logs about the app restarting. What’s strange is that my app reliably ends up in this state when I try to update it via graphql.
Just to clarify, you deployed sandbox-cld-adamb-batch-8 and it worked fine, then you deployed again and it broke?
I’m not seeing a second version of that app, and what’s running there seems to be responding fine.
Client network socket disconnected before secure TLS connection was established
Just guessing here, but this error could be a number of things.
When you make a new app we actually add an A record and AAAA record to dnsimple, we’ve noticed those are occasionally slow to propagate.
If you deploy once, then deploy again with empty services this is the type of error I’d expect
There could be some lag between deploy and our proxy seeing your instance as healthy. This is growing pains on our end, we’re working furiously to make this fast.
Oh that’s definitely broken. Can you share a list of GraphQL mutations you’re using? Also it looks like the app I was looking at is a replacement for another one that failed, will you get one to a failing state and leave it so we can have a look?
It’s working here, but I think I may know what’s wrong.
Will you run dig a sandbox-cld-adamb-batch-10.fly.dev and dig aaaa sandbox-cld-adamb-batch-10.fly.dev, then compare those IPs to fly ips list?
New apps get entirely new sets of IP addresses, so if you could have problems if you have DNS lookups cached on a system, delete an app, and then create a new one.
Well the good news is, that’s definitely the old IP. It should be using 213.188.211.206. So it seems like your launch mutation is working fine!
If you use unique app names, you probably won’t have this issue. Alternatively, you can figure out how to flush your DNS cache (which is some voodoo that varies by operating system).
Good point. Unfortunately I don’t know that I control the DNS caches throughout my infrastructure (in AWS, etc).
I think there was a bug in my terraform module that was overly aggressive about creating/deleting on every deploy. Now that the bug is fixed I’ll keep an eye on things.