Agent stuck in a loop
The agent repeats unintended behavior, such as reordering or retrying, without new instruction.
Example: An agent retries a booking every few minutes after a timeout and creates several orders.
A shared vocabulary for problems with AI agent orders: 10 reason codes, 3 alert types, 5 response types, and the statuses a case moves through. Each list names the API field that uses it. Merchants and operators can use them to write rules and reports that line up.
Each alert carries exactly one reason code. The examples illustrate the code; they are not records of real cases.
Used as reason_code on POST /api/v1/pre-dispute/alerts
The agent repeats unintended behavior, such as reordering or retrying, without new instruction.
Example: An agent retries a booking every few minutes after a timeout and creates several orders.
The action falls outside the scope the operator issued in the signed trace.
Example: A trace scoped to browsing and quotes is used to place an order.
The agent reached resources or account areas outside its authorization.
Example: An agent opens a merchant account page that its trace does not cover.
The transaction amount is above the trace cap or the delegated wallet limit.
Example: The trace caps the order at $149 and the cart comes to $188.
The agent bought something other than what the principal asked for.
Example: The buyer asked for a size M jacket and the agent ordered size XL.
The same intent produced repeated, unintended actions.
Example: One instruction to buy a gift produces two identical orders.
Authorization was revoked while the transaction was in progress.
Example: The operator revokes the trace while the agent is completing checkout.
The principal, usually the buyer, denies authorizing the agent’s action.
Example: The buyer tells the merchant they never asked their agent to make the purchase.
The operator reports a problem with its own agent before anyone else raises it.
Example: An operator finds a pricing bug in its agent and reports the affected orders.
Automated monitoring flagged the action for review.
Example: An anomaly check flags an unusual burst of orders from one agent.
The alert type sets the severity and the response deadline recorded on the alert.
Used as alert_type on POST /api/v1/pre-dispute/alerts
Either the merchant or the operator can respond, depending on who opened the alert.
Used as response_type on POST /api/v1/pre-dispute/alerts/{alert_id}/respond
The party opening the alert can request a remedy, and the response records the action taken.
Used as requested_remedy.action on POST /api/v1/pre-dispute/alerts · action_taken on POST /api/v1/pre-dispute/alerts/{alert_id}/respond
A response can record the state of the merchant–operator relationship after the case.
Used as relationship_status on POST /api/v1/pre-dispute/alerts/{alert_id}/respond
Every alert is in exactly one resolution status. KYA sets it; clients read it and can filter alert listings by it.
Used as status on GET /api/v1/pre-dispute/alerts
Version 0.9 matches the current alert API. Before 1.0, codes may be added, renamed, or split based on comments, and every change gets a new version number. The JSON file always reflects the version on this page.
We’ll set up the KYA Pre-Dispute Network on your checkout and map your existing dispute policy to these codes.