POST /openapi/v1/issue-records when your local runtime detects behavior that may deserve an Issue. Recording a candidate does not mean an Issue is immediately created.
The server stores the original record first. A background process then checks context, recovery state, and existing similar Issues before it creates a new Issue or adds an occurrence to an existing one.
Detection example
Fields
The request body limit is 256 KiB.
Accepted response
RECEIVED, EVALUATING, DECIDED, and FAILED. isNew: false means the same sdkInstanceId and clientRecordId were already received.
The response confirms durable receipt, not final Issue creation. Do not block a customer request while waiting for later evaluation.
Fingerprints and grouping
The client reports structured facts, not a grouping decision. The server derives its fingerprint from stable information such as detector type, policy, failed tool, tool set, reason code, and model context. It hashes the canonical value with SHA-256. Do not generate a random fingerprint per occurrence. Keep detector names and tool identifiers stable so equivalent situations can group consistently.Recovery records
Send a new record withrecordKind: "RECOVERY" when your runtime has evidence that the detected condition ended. Give the recovery its own clientRecordId and link the same Run or Session where possible.
Recovery handling is asynchronous. A recovery record is evidence for server evaluation; it does not directly close an Issue.