Error reference: Mandate validity
Was the mandate valid at the time of the action?
A mandate applies for a specific period. This check compares the start and end of validity with the verification time and, where available, with the time of the action. It also establishes whether a mandate is present at all.
What counts is the time of the action, not the time at which someone verifies later. That is why the certificate records the verification time, and a timestamp can prove the time of the action independently.
An expired mandate does not automatically make an action unlawful, but proof of authority is then missing for that point in time.
expired
Expired at the time of evaluation.
Cause: The mandate had expired at the relevant point in time.
Fix: Issue a new mandate. Check whether the action really took place after expiry or whether the verification time is the reason.
not_yet_valid
Not yet valid at the time of evaluation.
Cause: The mandate was not yet valid at the relevant point in time; its start lies in the future.
Fix: Check the start of validity and the clocks of the systems involved. Deviating clocks often lead to this code.
mandate_not_included
The mandate is not included.
Cause: The evidence refers to a mandate that is not included.
Fix: Include the mandate, ideally together with decision and receipt as an evidence pack.
Common situations
Late verification: if evidence is verified months after the action, the mandate has often expired in the meantime. What counts, however, is the time of the action. A timestamp proves that the action fell within the validity, and the certificate records the verification time.
Deviating clocks: if the issuing system's clock runs ahead, validity seemingly begins in the future. Synchronize the clocks of all systems involved.
Short validity: mandates with very short validity are safe but expire quickly. Reissue them in good time instead of extending validity across the board.
Parts stored separately: if mandate, decision and receipt are kept in different places, the mandate is often missing at verification. An evidence pack keeps all parts together and prevents this.
How to test this check
The public test vectors contain mandates with expired and not yet started validity. Verify them with the engine through the kya-verify command line and compare the reported codes with the vectors' expected results. This shows how the engine handles the verification time and why a mandate verified later can appear expired. The expected codes are stated in each vector itself.