A transit fare tool rejects a policy-violating adjustment. How should structured errors steer the agent?
Select an answer to reveal the explanation.
Short Explanation
Policy said no—don't keep kicking the fare API. Non-retryable errors tell the transit agent to explain the rule instead of looping.
Full Explanation
When a transit fare tool rejects a policy-violating adjustment, structured errors should mark the policy violation as non-retryable so the agent explains the rule instead of looping. Illegal fare changes will not become legal through repetition; the correct civic behavior is to stop and communicate the policy constraint to the rider or agent operator.
Non-retryable policy errors work because they convert a dead-end API rejection into a guidance path. Fare integrity depends on agents not hammering the same disallowed adjustment and not silently skipping policy enforcement for municipal riders.
Marking it retryable so the agent hammers the same illegal adjustment wastes capacity and may trip abuse controls. Returning success and silently skipping applying the policy falsifies the outcome and undermines fare rules. Omitting isRetryable so the agent must guess whether to loop leaves recovery nondeterministic under identical violations.
Exam caveat: include a human-readable policy reason safe for rider-facing explanation. Operational check: submit a known policy-violating fare adjustment and confirm isRetryable false plus an explanation that steers the agent to clarify the rule without retry spam.