{"record":{"id":"1e2f582c34398df9","repo":"PaddlePaddle/PaddleOCR","slug":"batch-extractresult-items-must-be-objects","errorCode":null,"errorMessage":"Batch extractResult items must be objects.","messagePattern":"Batch extractResult items must be objects\\.","errorType":"exception","errorClass":"ResponseFormatError","httpStatus":null,"severity":"error","filePath":"paddleocr/_api_client/_core.py","lineNumber":204,"sourceCode":"        raise ResponseFormatError(\"Done job response must contain object 'resultUrl'.\")\n    json_url = result_url.get(\"jsonUrl\")\n    if not isinstance(json_url, str) or not json_url:\n        raise ResponseFormatError(\n            \"Done job response resultUrl must contain non-empty string 'jsonUrl'.\"\n        )\n    return json_url\n\n\ndef parse_batch_status(batch_id: str, data: dict) -> BatchStatus:\n    result = data.get(\"extractResult\")\n    if not isinstance(result, list):\n        raise ResponseFormatError(\n            \"Batch response data must contain list 'extractResult'.\"\n        )\n    jobs = []\n    for item in result:\n        if not isinstance(item, dict):\n            raise ResponseFormatError(\"Batch extractResult items must be objects.\")\n        job_id = item.get(\"jobId\")\n        if not isinstance(job_id, str) or not job_id:\n            raise ResponseFormatError(\n                \"Batch extractResult items must contain non-empty string 'jobId'.\"\n            )\n        jobs.append(job_status_from_data(job_id, item))\n    return BatchStatus(batch_id=batch_id, jobs=jobs)\n","sourceCodeStart":186,"sourceCodeEnd":212,"githubUrl":"https://github.com/PaddlePaddle/PaddleOCR/blob/2661c7c0ef5c613e8f93c6e93b2e052399f0f854/paddleocr/_api_client/_core.py#L186-L212","documentation":"Error \"Batch extractResult items must be objects.\" thrown in PaddlePaddle/PaddleOCR.","triggerScenarios":"Raised by parse_batch_status() when an item in the batch extractResult list is not a JSON object.","commonSituations":"Items in the batch 'extractResult' list were not objects. Indicates a malformed server payload. Capture the raw response and report or retry.","solutions":["Check the batch status response; every item in extractResult must be a JSON object describing a job.","Capture the raw response and report it if the server returned scalar or null items.","Retry the status request; a transient server error can produce a malformed payload."],"exampleFix":"for item in result:\n    if not isinstance(item, dict):\n        print(item)  # find the malformed entry","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2661c7c0ef5c613e8f93c6e93b2e052399f0f854","analyzedAt":"2026-08-14T20:17:30.180Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}