{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Error Handling — Pathology — JondaX API Docs","description":"Handle errors from the JondaX Pathology module. Covers unsupported file types, subscription and usage rejections (402), 401 unauthorized, processing error callbacks, status polling errors, and error codes JX2001–JX3003.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"error-handling","__idx":0},"children":["Error Handling"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"unsupported-file-type-http-400","__idx":1},"children":["Unsupported file type (HTTP 400)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"success\": false,\n  \"statusCode\": 400,\n  \"path\": \"/api/master?module=pathology\",\n  \"timestamp\": \"2026-09-07T04:11:45.928Z\",\n  \"message\": \"Unsupported file type \\\"report.xyz\\\" for pathology module. Supported types: PDF, HL7, XML, JSON, CSV, Parquet, and Images (PNG, JPEG, HEIC, HEIF, AVIF, WEBP, BMP, TIFF).\",\n  \"error\": \"UNSUPPORTED_FILE_TYPE\",\n  \"code\": \"UNSUPPORTED_FILE_TYPE\",\n  \"type\": \"validation\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["success"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},", the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," field is absent. Rejected uploads include a"," ","machine-readable ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"validation\""]}," for file-type errors,"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"billing\""]}," for subscription/usage errors) so you can branch programmatically"," ","without parsing the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]}," string."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you send multiple files in one request and any file is an unsupported type,"," ","the entire request is rejected and no file is processed."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"subscription-and-usage-rejections-http-402","__idx":2},"children":["Subscription and usage rejections (HTTP 402)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When the upload is rejected for a billing or usage reason, the response is"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["HTTP 402 Payment Required"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type: \"billing\""]},". The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," field identifies"," ","the specific cause:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"code"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Meaning"},"children":["Meaning"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SUBSCRIPTION_EXPIRED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your subscription for this module has expired (or you have no active subscription). Renew to resume uploads."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MODULE_SUBSCRIPTION_MISSING"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You have no subscription for the module you're uploading to."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SUBSCRIPTION_INACTIVE"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A subscription exists for this module but is not currently active."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAGE_LIMIT_EXCEEDED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You have used all pages in your plan and no overage is available."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SPEND_CAP_REACHED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Processing another page would exceed your configured spend cap."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PILOT_QUOTA_EXCEEDED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your pilot transformation quota is exhausted."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Example (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SUBSCRIPTION_EXPIRED"]},"):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"success\": false,\n  \"statusCode\": 402,\n  \"path\": \"/api/master?module=pathology\",\n  \"timestamp\": \"2026-09-07T04:11:45.928Z\",\n  \"message\": \"Your pathology subscription has expired\",\n  \"error\": \"SUBSCRIPTION_EXPIRED\",\n  \"code\": \"SUBSCRIPTION_EXPIRED\",\n  \"type\": \"billing\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Example (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SPEND_CAP_REACHED"]},"):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"success\": false,\n  \"statusCode\": 402,\n  \"path\": \"/api/master?module=pathology\",\n  \"timestamp\": \"2026-09-07T04:11:45.928Z\",\n  \"message\": \"Spend cap reached. Cannot process more pages.\",\n  \"error\": \"SPEND_CAP_REACHED\",\n  \"code\": \"SPEND_CAP_REACHED\",\n  \"type\": \"billing\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For every ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["402"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]}," always describe the same cause. Subscriptions"," ","are per-module: an active subscription for another module does not permit uploads"," ","to a module whose subscription has expired."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"unauthorized-http-401","__idx":3},"children":["Unauthorized (HTTP 401)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"success\": false,\n  \"statusCode\": 401,\n  \"path\": \"/api/master?module=pathology\",\n  \"timestamp\": \"2026-04-02T08:26:13.716Z\",\n  \"message\": \"Invalid API token format\",\n  \"error\": \"Unauthorized\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Three distinct ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]}," values are possible:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Message"},"children":["Message"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Cause"},"children":["Cause"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"API token required\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorization"]}," header is missing entirely"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"Invalid API token format\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Header present but token doesn't match the expected format"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"Invalid API token\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Token is correctly formatted but not found or account is inactive"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"missing-or-invalid-parameters-http-400","__idx":4},"children":["Missing or invalid parameters (HTTP 400)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returned when a required parameter is missing or invalid — for example, the"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["module"]}," query parameter is absent."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"success\": false,\n  \"statusCode\": 400,\n  \"path\": \"/api/master\",\n  \"timestamp\": \"2026-09-07T04:11:45.928Z\",\n  \"message\": \"Query parameter 'module' is required. Use: 'pathology', 'wearable', or 'medical'\",\n  \"error\": \"Bad Request\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"server-error-http-500","__idx":5},"children":["Server error (HTTP 500)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returned when an unexpected error occurs while processing the request. This"," ","indicates a problem on our side, not with your request — retry after a short"," ","delay, and if it persists, contact support with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["timestamp"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["path"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"success\": false,\n  \"statusCode\": 500,\n  \"path\": \"/api/master?module=pathology\",\n  \"timestamp\": \"2026-09-07T04:11:45.928Z\",\n  \"message\": \"Internal server error\",\n  \"error\": \"Internal Server Error\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"processing-error-callbacks","__idx":6},"children":["Processing error callbacks"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When processing fails, JondaX POSTs an error payload to your callback endpoint."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"error-codes","__idx":7},"children":["Error codes"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Code"},"children":["Code"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Message"},"children":["Message"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["JX2001"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["We couldn't read the text in the image you uploaded."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["JX2002"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The image format you uploaded isn't suitable for text recognition."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["JX2005"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The file isn't a blood test result."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["JX3002"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["We do not support transforming data in the language you uploaded yet."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["JX3003"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["We had trouble understanding the meaning of the original data."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"error-callback-fields","__idx":8},"children":["Error callback fields"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customerId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["integer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your account identifier. Always present."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["uploadId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The upload ID of the failed file. Always present."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fileName"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Original uploaded filename. Always present."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errorCode"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Error code (see table above)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errorMessage"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Human-readable error description."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Results"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["array"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Always present but empty (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[]"]},") in error callbacks."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example","__idx":9},"children":["Example"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"http","header":{"controls":{"copy":{}}},"source":"POST /api/results HTTP/1.1\nHost: api.example.com\nContent-Type: application/json\n[api-header]: [api-key]\n\n{\n  \"customerId\": 16,\n  \"uploadId\": \"a24d4b93-5062-41fb-95b1-b85f5765ae91\",\n  \"fileName\": \"4434.png\",\n  \"errorCode\": \"JX2005\",\n  \"errorMessage\": \"The file isn't a blood test result.\",\n  \"Results\": []\n}\n","lang":"http"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"status-polling-errors","__idx":10},"children":["Status polling errors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The status endpoint (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /api/v1/status/:uploadId"]},") can return the following errors:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"not-found-http-404","__idx":11},"children":["Not found (HTTP 404)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returned when the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["uploadId"]}," does not exist or the upload has passed the 30-day retention window and been purged."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"message\": \"UploadId not found or expired\",\n  \"error\": \"Not Found\",\n  \"statusCode\": 404\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"message\": \"Upload has expired and data has been purged\",\n  \"error\": \"Not Found\",\n  \"statusCode\": 404\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"forbidden-http-403","__idx":12},"children":["Forbidden (HTTP 403)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returned when the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["uploadId"]}," exists but was created by a different customer's API key."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"message\": \"UploadId belongs to a different customer\",\n  \"error\": \"Forbidden\",\n  \"statusCode\": 403\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"unauthorized-http-401-1","__idx":13},"children":["Unauthorized (HTTP 401)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returned when the API key is missing or invalid on the status endpoint."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"message\": \"Missing API key\",\n  \"error\": \"Unauthorized\",\n  \"statusCode\": 401\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"message\": \"Invalid API key\",\n  \"error\": \"Unauthorized\",\n  \"statusCode\": 401\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"troubleshooting","__idx":14},"children":["Troubleshooting"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Symptom"},"children":["Symptom"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Likely cause"},"children":["Likely cause"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Fix"},"children":["Fix"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"API token required\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorization"]}," header missing"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Add ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorization: Bearer <token>"]}," to every request"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"Invalid API token format\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Token format wrong"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Check for extra spaces, quotes, or missing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Bearer"]}," prefix"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"Invalid API token\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Token not recognised or account inactive"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Verify the token in the Integration page; regenerate if needed"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401"]}," on status polling"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["API key missing or invalid"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use the same API key from the Integration page in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorization: Bearer <key>"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403"]}," on status polling"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Wrong API key for this upload"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use the API key that was active when the file was uploaded"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404"]}," on status polling"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Upload ID doesn't exist or expired"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Verify the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["uploadId"]}," value; check if 30-day retention has passed"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"Query parameter 'module' is required...\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Missing/invalid ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["module"]}," parameter"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Add ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["?module=pathology"]}," (or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["wearable"]},"/",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["medical"]},") to the request URL"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code: \"UNSUPPORTED_FILE_TYPE\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["File format not accepted"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Convert to a supported format and retry"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["402"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code: \"SUBSCRIPTION_EXPIRED\""]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"MODULE_SUBSCRIPTION_MISSING\""]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"SUBSCRIPTION_INACTIVE\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No active subscription for this module"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Renew or activate your pathology subscription on the Integration page"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["402"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code: \"PAGE_LIMIT_EXCEEDED\""]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"SPEND_CAP_REACHED\""]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"PILOT_QUOTA_EXCEEDED\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Plan usage exhausted or spend cap reached"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Upgrade your plan, raise your spend cap, or wait for the next billing period"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["500"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"Internal server error\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Unexpected error on our side"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Retry after a short delay; if it persists, contact support with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["timestamp"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["path"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Upload accepted but no callback received"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Callback URL unreachable or misconfigured"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Verify endpoint URL, availability, and auth header/key on the Integration page"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Callback delivery ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["exhausted"]}," on status"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All 3 retry attempts failed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Check your endpoint's availability and response codes; contact support to retrieve the stored result"]}]}]}]}]}]},"headings":[{"value":"Error Handling","id":"error-handling","depth":1},{"value":"Unsupported file type (HTTP 400)","id":"unsupported-file-type-http-400","depth":2},{"value":"Subscription and usage rejections (HTTP 402)","id":"subscription-and-usage-rejections-http-402","depth":2},{"value":"Unauthorized (HTTP 401)","id":"unauthorized-http-401","depth":2},{"value":"Missing or invalid parameters (HTTP 400)","id":"missing-or-invalid-parameters-http-400","depth":2},{"value":"Server error (HTTP 500)","id":"server-error-http-500","depth":2},{"value":"Processing error callbacks","id":"processing-error-callbacks","depth":2},{"value":"Error codes","id":"error-codes","depth":3},{"value":"Error callback fields","id":"error-callback-fields","depth":3},{"value":"Example","id":"example","depth":3},{"value":"Status polling errors","id":"status-polling-errors","depth":2},{"value":"Not found (HTTP 404)","id":"not-found-http-404","depth":3},{"value":"Forbidden (HTTP 403)","id":"forbidden-http-403","depth":3},{"value":"Unauthorized (HTTP 401)","id":"unauthorized-http-401-1","depth":3},{"value":"Troubleshooting","id":"troubleshooting","depth":2}],"frontmatter":{"seo":{"title":"Error Handling — Pathology — JondaX API Docs","description":"Handle errors from the JondaX Pathology module. Covers unsupported file types, subscription and usage rejections (402), 401 unauthorized, processing error callbacks, status polling errors, and error codes JX2001–JX3003."}},"lastModified":"2026-09-29T04:36:43.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/pathology/error-handling","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}