Fly auto-migrated my app to v2 this week, and it broke me in an unexpected way.
I’ve resolved the issue, but I’m sharing in case it helps others or in case the Fly team wants to investigate.
I believe the issue was caused by having conflicting environment variable values between fly secrets and the [env] section of my fly.toml.
The app was gatekeeper.
The app had a secret I created at some point called SHOPIFY_SHOP_NAME, but I realized that the value wasn’t really secret, so I moved it to the env section of my fly.toml and assigned it the value tinypilot. That was probably a year ago.
After Fly auto-migrated my app to v2, everything worked fine. SHOPIFY_SHOP_NAME still had a value of tinypilot.
We deployed the next day from CircleCI with fly deploy, and that changed the value of SHOPIFY_SHOP_NAME from tinypilot (correct) to YOUR-SHOPIFY-STORE-NAME (incorrect). I’m not sure where it got the value, but I suspect that I initially assigned fly secrets set SHOPIFY_SHOP_NAME=YOUR-SHOPIFY-STORE-NAME and then corrected it by overriding the value in my fly.toml.
When I realized what happened, I ran fly secrets unset SHOPIFY_SHOP_NAME and my app picked up the correct value of tinypilot again.
What it looks like happened is that in v1, the fly.toml took precedence over fly secrets, but in v2, fly secrets takes precedence, but I’m not entirely sure that’s what happened.
If anyone from the Fly team wants to peek into the account and share insights, you’re welcome to. Again, there’s no outstanding issue on my end, but I wanted to share in case it’s useful.