rustfs/rustfs · error · EnrollmentError
CHALLENGE_EXPIRED
CHALLENGE_EXPIRED
Error message
the challenge has expired at the evaluation time
What it means
During offline enrollment evaluation, the challenge's expiry time has already passed relative to the evaluation clock, so the response arrives too late. Enrollment challenges are deliberately short-lived to bound replay risk; a late response must be rejected and a fresh challenge issued, which also covers significant clock skew between issuer and evaluator.
Source
Thrown at rustfs/src/connect/offline/enrollment.rs:187
#[error("protocolVersion is missing, malformed, or names an unsupported major version")]
UnsupportedProtocol,
#[error("formatVersion is not a supported offline enrollment format")]
UnsupportedFormat,
#[error("the signature is not 64 octets of fixed-width r||s in unpadded base64url")]
SignatureMalformed,
#[error("the signature is not in its canonical low-S form")]
SignatureNotCanonical,
#[error("the signature does not verify over the received octets")]
SignatureInvalid,
#[error("the trust chain is not issued by a root pinned in this build")]
EnrollmentRootUnknown,
#[error("a trust link is invalid, misordered, or outside its validity at the challenge issuedAt")]
TrustChainInvalid,
#[error("connectKeyId is not the subject of the last trust link")]
ConnectKeyUnchained,
#[error("no issued challenge matches this challengeId")]
ChallengeUnknown,
#[error("the challenge is not yet valid at the evaluation time")]
ChallengeNotYetValid,
#[error("the challenge has expired at the evaluation time")]
ChallengeExpired,
#[error("the response nonce or challengeProof is not the one issued for this challenge")]
ChallengeProofInvalid,
#[error("the response does not prove possession of the device key it presents")]View on GitHub (pinned to 5dca076efe)
Solutions
- Request a new challenge and produce a fresh enrollment response
- Complete enrollment within the challenge validity window
- Check device clock if challenges seem to expire immediately
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at rustfs/src/connect/offline/enrollment.rs:183 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of rustfs/rustfs@5dca076efe (2026-08-23).
Data as JSON: /api/errors/dcc98ed163a9f043.
Report an issue: GitHub.