Skip to main content

“Authentication required. Provide Bearer token.”

Cause: Missing or invalid Authorization header. Solution: Include the Bearer token in the Authorization header:

“Invalid or expired token”

Cause: JWT token has expired (default: 2 hours). Solution: Get a new token from /auth/token:

“Missing required field: search_id”

Cause: Required field is missing from the request. Solution: Ensure all required fields are included:

“date_of_birth must be in YYYY-MM-DD format”

Cause: Date format is incorrect. Solution: Use YYYY-MM-DD format:

“Court search ID and offense ID counts do not match the XML” (HTTP 500 on /evaluate)

Cause: A non-empty record.cases[] was sent with counts that do not match the parsed XML/record_json. Common with filtered UBS payloads that include fewer court search IDs / offense ID rows than the full record (e.g., 17 court search IDs and 22 offense IDs when XML has 24 cases and 32 charges). Solution: Either:
  1. Omit cases[] or send cases: [] — evaluate all offenses (recommended when you do not need explicit mapping), or
  2. Send the complete mapping — one row per offense, with distinct court search ID count equal to XML case count and total offense ID row count equal to total offense count:
Partial subsets are always rejected. This is not HTTP 422 on /evaluate — expect HTTP 500 with data.status: "failed", data.errors[] containing XML-Transformer HTTP error 422: Court search ID and offense ID counts do not match the XML: ..., and data.degradation.compliance_engine.status: "not_called". See Error Handling → court search ID / offense ID count mismatch.

”Failed to parse XML data”

Cause: Invalid or malformed XML in the request. Solution: Validate your XML before sending:

Getting Help

If you encounter issues not covered here:
  1. Check the API Reference for endpoint-specific details
  2. Verify your request format matches the Code Examples
  3. Review the Authentication Guide for token management