Letsencrypt and payed instances

Since migrating my app from appfleet to the free tier a couple of days ago things where going fine until today:

29 urn:ietf:params:acme:error:rateLimited: Error creating new order :: too many certificates (5) already issued for this exact set of domains in the last 168 hours: : see Rate Limits - Let's Encrypt

I can’t see it from fly logs but I’m imagining, that the free service might have restarted the containers, leading to re-issue of (non-persisted) certificate and hence rate limit.

Does this reasoning make sense?

If yes: I’ve be happy to convert to commercial instance but only need smallest size. Will these stay online or also be subject to reboots?

I couldn’t even figure our how to provide credit car or similar in the UI. How can I actually migrate from free to commercial tier???

Cheers,
Andi

Note to myself: I could probably also have fly manage the HTTP(S) endpoints and certificates for me, but I’m too lazy to change the application right now.

Instances may restart at any moment and your app should work as if it was stateless (unless you have a volume on which to persist state).

This applies to paid and free tiers.

Of course we try to not restart them as much as possible.

Instances may restart at any moment and your app should work as if it was stateless (unless you have a volume on which to persist state).

The application can live with restarts. Problem here seems to be that we’re restarting too often and hence renew LE certificates too often:

  1. can I see the restarts somewhere? The logs seems to go back only sofar?
  2. I’m happy with paid tier but couldn’t find our how to convert the app to paid tier- how would I do that (sounds stupid, but I couldn’t even find how to supply my credit card…)

You’ve likely already entered your card number, we don’t allow deploying anything unless you supply one.

I looked at it only seems to have restarted once (exit code 2).

We don’t currently have an easy way to navigate logs we store. However, you can send logs somewhere else: Fly Logs over NATS

How many certificates are you creating on boot? Limits are pretty strict for Let’s Encrypt.

Edit: took a closer look at the logs, it seems like it exited 5 times in a few minutes, all with exit code 2.

There appears to have been a panic in your go code. Maybe stemming from server/auth.go:19 (I’ve omitted more details intentionally).

You’ve likely already entered your card number, we don’t allow deploying anything unless you supply one.

Can’t remember, but in any case there’s no “payment details in the ui”. Say I have: how would I now deploy a paid service application or convert free to paid? I realize it sounds stupid, but I really don’t understand how :open_mouth:

Edit: took a closer look at the logs, it seems like it exited 5 times in a few minutes, all with exit code 2.

That might explain it- error message is for 5 generated certs for domain, only that is created at startup.

There appears to have been a panic in your go code. Maybe stemming from server/auth.go:19 (I’ve omitted more details intentionally).

I can’t find that in the logs accessible.

Doesn’t sound stupid at all! There’s no distinction between free and paid really. You’re allowed up to $x free per month and that amounts to 3x of our smallest instance sizes. If you go over by using bigger instances then we charge the difference. So you have nothing to do to except scale your app’s instances (flyctl scale has more info)

We only show the last 100 log lines and then stream the rest as it comes in. Your app logged a few more than that since the panics so they’re not accessible via this method. At least not until we add some more features!