Is SIGINT an issue with my app or an issue with fly.io?

Hi… Yes, it’s true, your Machines can be shut down without advance warning—other than the SIGXXX itself—and this is part and parcel of the normal operating regime of the platform.

(You’re not the first person to guess otherwise, though.)

This inherently holds for all Machine classes, not just shared, incidentally.

See the following for more background on why this is essential and what constraints you can rely on (esp. when maintaining a database cluster):

https://community.fly.io/t/psa-machine-migration-has-started-again/20265

https://fly.io/docs/reference/machine-migration/

https://fly.io/docs/reference/configuration/#kill_timeout-option

More broadly, Machines aren’t intended to be VPSes, but rather to lean more toward Amazon Lambda in terms of disposability. (This is my understanding from what Fly.io people have said themselves, in the past.) To use the platform effectively, you need to architecture around that…

Hope this helps a little!