unixcharles / acme-client

A Ruby client for the letsencrypt's ACME protocol.
MIT License
494 stars 117 forks source link

Acme::Client::Error::CertificateNotReady: No certificate_url to collect the order #226

Closed willzoltan closed 1 year ago

willzoltan commented 1 year ago

We're seeing the error Acme::Client::Error::CertificateNotReady: No certificate_url to collect the order being raised on all of our cert requests.

Here is where the error is thrown (on the certificate method of the order):

order = lets_encrypt_client.new_order(identifiers: domains_for_certificate)
order.certificate

Here is the traceback:

Acme::Client::Error::CertificateNotReady: No certificate_url to collect the order
  File "/usr/local/bundle/gems/acme-client-2.0.8/lib/acme/client/resources/order.rb", line 31, in certificate

Our acme client version is 2.0.8.

We've been happily processing thousands of SSL certs and now we're seeing this error being raised on all SSL certs. Any ideas how to address it?

tdegrunt commented 1 year ago

Same here, this may be why: https://letsencrypt.status.io/

tdegrunt commented 1 year ago

Seems fixed!

henk84 commented 7 months ago

I just ran into the same issue and wasted about an hour trying to figure it out with this bugreport being the only thing I could find about it. To hopefully prevent someone else from wasting time in a similar manner: I did not pay attention and the call to order.finalize wound up in a conditional block that was not always called. I.e. not calling finalize gives the same error.

I now noticed that the status in the order might be ready when finalize has not been called but seems to be valid when finalize has been called. If so, the call to certificate could maybe check the status and tell the user to run finalize first if it’s ready, not valid?