Skip to content

Negative examples

Failure shapes integrators should handle deliberately.

Missing headers

Call Missing Typical result
Fraud scoring Authorization 401
Fraud scoring x-tenant-id 422
JSON POST Content-Type 415/422 depending on stack

Invalid tenant / scope

Call Problem Result
Fraud Unknown/wrong tenant string with valid JWT May 200 against empty/wrong partition — your bug if mis-routed
Recon Missing tenant_id / partner_id 422
Recon Scope that does not own the cluster Resolve no-ops or rejects per contract — do not assume cross-tenant access

Invalid enum values

{ "decision": "APPROVE" }

Fraud policy / recon resolve expect documented lowercase (or exact) enums — 422 or business error. Use approve / approved as specified per product.

Expired JWT

Inbound Fraud token with past exp → 401 Token verification failed. Mint a new token; fix clock skew.

Rejected business checks

Product Example Action
Fraud report compose ML_SCORE_TIER_CONFLICT Fix prediction; do not retry identical body
Fraud report compose AMBIGUOUS_PREDICTION_CONTRACT Fix emitter identity keys
Recon decision=reconcile with unsupported cluster_ids 422 — see exception contract
KYC Vendor returns no-match HTTP may still be 200 — read body

Vendor uncertainty (KYC)

Timeouts, partial vendor payloads, or “insufficient data” responses are not proof of identity. Surface uncertainty to operators; do not coerce to pass/fail without policy.

Duplicate / retry behaviour

Action Safe?
Retry Fraud score after 401 with new JWT Yes
Retry Fraud score after contract validation failure with same body No
Retry recon ingestion with same session_id after mid-pipeline failure Often unsafe (trigger guard) — new session preferred
Retry exception resolve with same resolution_request_id Yes when id was supplied

Full tables: Retry and idempotency.