Skip to content

Errors

lacme.errors

ACME error types and server error factory.

Maps RFC 8555 Section 6.7 error URNs to typed Python exceptions. Server responses with application/problem+json bodies are parsed into the appropriate exception subclass via :func:server_error_from_response.

ACMEConnectionError

Bases: ACMEServerError

urn:ietf:params:acme:error:connection

ACMEError

Bases: Exception

Base exception for all lacme errors.

ACMEServerError

Bases: ACMEError

Server returned an RFC 7807 problem document.

ACMEStoreError

Bases: ACMEError

Storage read/write failure.

ACMETimeoutError

Bases: ACMEError

Polling deadline exceeded (order or authorization).

ACMEValidationError

Bases: ACMEError

A challenge validation failed (authorization became invalid).

AccountDoesNotExistError

Bases: ACMEServerError

urn:ietf:params:acme:error:accountDoesNotExist

AlreadyRevokedError

Bases: ACMEServerError

urn:ietf:params:acme:error:alreadyRevoked

BadCSRError

Bases: ACMEServerError

urn:ietf:params:acme:error:badCSR

BadNonceError

Bases: ACMEServerError

urn:ietf:params:acme:error:badNonce — triggers automatic retry.

BadPublicKeyError

Bases: ACMEServerError

urn:ietf:params:acme:error:badPublicKey

BadRevocationReasonError

Bases: ACMEServerError

urn:ietf:params:acme:error:badRevocationReason

BadSignatureAlgorithmError

Bases: ACMEServerError

urn:ietf:params:acme:error:badSignatureAlgorithm

CAAError

Bases: ACMEServerError

urn:ietf:params:acme:error:caa

CertificateAuthorityError

Bases: ACMEError

Error in CA operations (e.g., signing before init, invalid CSR).

CompoundError

Bases: ACMEServerError

urn:ietf:params:acme:error:compound

DNSError

Bases: ACMEServerError

urn:ietf:params:acme:error:dns

ExternalAccountRequiredError

Bases: ACMEServerError

urn:ietf:params:acme:error:externalAccountRequired

IncorrectResponseError

Bases: ACMEServerError

urn:ietf:params:acme:error:incorrectResponse

InvalidContactError

Bases: ACMEServerError

urn:ietf:params:acme:error:invalidContact

MalformedError

Bases: ACMEServerError

urn:ietf:params:acme:error:malformed

OrderNotReadyError

Bases: ACMEServerError

urn:ietf:params:acme:error:orderNotReady

RateLimitPreventedError

Bases: ACMEError

Raised when local rate limit tracking prevents issuance.

RateLimitedError

Bases: ACMEServerError

urn:ietf:params:acme:error:rateLimited

retry_after property
retry_after: int | None

Seconds to wait before retrying, parsed from the Retry-After header.

RejectedIdentifierError

Bases: ACMEServerError

urn:ietf:params:acme:error:rejectedIdentifier

ServerInternalError

Bases: ACMEServerError

urn:ietf:params:acme:error:serverInternal

TLSError

Bases: ACMEServerError

urn:ietf:params:acme:error:tls

UnauthorizedError

Bases: ACMEServerError

urn:ietf:params:acme:error:unauthorized

UnsupportedContactError

Bases: ACMEServerError

urn:ietf:params:acme:error:unsupportedContact

UnsupportedIdentifierError

Bases: ACMEServerError

urn:ietf:params:acme:error:unsupportedIdentifier

UserActionRequiredError

Bases: ACMEServerError

urn:ietf:params:acme:error:userActionRequired

server_error_from_response

server_error_from_response(problem: dict[str, Any], response_headers: dict[str, str] | None = None) -> ACMEServerError

Create the appropriate :class:ACMEServerError subclass from a problem document.

Strips the urn:ietf:params:acme:error: prefix, looks up the short name in the registry, and falls back to :class:ACMEServerError for unknown types.