DocReadi

Troubleshooting

Troubleshooting

This chapter explains what to do when a document doesn't process cleanly: where to look, what the common validation messages mean in plain language, what a duplicate flag means, what the "awaiting credits" and "awaiting verification" states mean, and how to reach support when you're stuck.

The pipeline errors page

Settings → Logs & tools → Pipeline errors (Admin role) lists the most recent extraction and ingestion failures for your workspace — the last 200, newest first. Each row shows:

This is the fastest way to see whether a batch of failures shares a common cause (the same vendor, the same file type, the same validation rule) before you contact support.

Common validation failures, in plain language

After extraction, DocReadi runs a set of cross-field checks. Any failure sends the document to the review queue regardless of how confident the model was — see How processing works for the full confidence-gate picture, and Reviewing documents for how to fix a flagged document. Where a warning comes from a check you can configure, Admins and above see an Adjust this check in Settings → Features link directly under it, taking you straight to that check's row — a handful of checks (subtotal + VAT vs. total, the amount-payable math, due date before invoice date, currency validity, and the check that the party, document number and total can be found in the document's text) have no such link and no "off" setting in your workspace: a document that fails one of those is misread, not merely flagged differently, so a workspace can't switch them off. The checks you'll see most often:

Statement checks

A vendor or customer statement is checked against its own ledger rather than against invoice arithmetic — it carries no line items, subtotal or tax total to reconcile (see Statements of account). These checks run automatically on every statement, as soon as it is processed:

For the running-balance row check, try Re-validate before anything else — see Reviewing a statement. For the others, reprocessing the statement is usually the right response: these are reading errors on a ledger, not fields you can correct one at a time.

Rolling-account bill checks

Municipal, utility and telco bills print a running account balance beside the period's charges. The figure DocReadi books is always this period's charges, never the account balance — even when the account is in credit and the closing balance is negative. These checks confirm that, and they only run on a document that actually prints both a previous balance and a closing balance, so an ordinary invoice can't trip them:

These checks are controlled by Check rolling-account bills reconcile on your Features page, which is on by default. The account fields themselves are described under Rolling-account bills.

If a validation message doesn't match anything above, the document viewer's error detail and the pipeline errors page both show the exact message — include it when you contact support.

An e-invoice XML DocReadi couldn't read

An .xml file is accepted only if it's one of the e-invoice formats DocReadi reads — UBL 2.1 or UN/CEFACT CII (see E-invoice XML). When it isn't, the document is marked Failed and the reason appears on the pipeline errors page:

Neither case falls back to a model: an e-invoice XML is read from the file or not at all. Re-sending a corrected file is the fix.

Separately, if you pick one of your custom templates when sending an XML file, the document stops at Failed without an entry on the errors page. Send it again with no template selected — e-invoice XML maps onto the built-in invoice types.

Duplicate documents

DocReadi checks new documents against your workspace's recent history for likely duplicates — the same PDF re-uploaded, the same vendor and invoice number, or a very similar amount and date. When a likely duplicate is found, it's flagged on the document in the review queue rather than silently dropped, so a reviewer decides: reject it as a duplicate, mark it Not a duplicate, or Keep this one (it becomes the original and the other document is flagged instead). See Resolving a duplicate for how each works.

A document stuck mid-processing

Most documents move through the pipeline in seconds. If one is stranded mid-flight — for example because DocReadi restarted for a deploy — the system notices on its own and retries it automatically, with no action needed from you. A document that keeps failing doesn't retry forever: DocReadi retries it automatically up to three times, and if it still hasn't completed, it stops retrying and the document is marked Failed, with a message in the error log explaining what happened ("Processing was retried automatically 3 times without completing…") — see the pipeline errors page for where that message shows up.

If the document-reading (OCR) service is rate limiting — for example after you reprocess or upload many scans at once — the document is not marked Failed. It goes back into the queue and is retried automatically after about 30 minutes, up to 10 times. These waits don't count towards the three retries above. Its error log shows a rate_limited entry: "The document-reading service is rate limiting us (too many documents at once). This document is back in the queue and will be retried automatically — no action needed." Only if it is still rate limited after the automatic retries does it read Failed, with the message "The document-reading service was still rate limiting us after 10 automatic retries, so we stopped retrying. Press Resume to try again."

If a re-run (Reprocess) fails, the document viewer says "This re-run didn't finish, but the previous extraction is kept. You can restore it." and offers Restore previous. This appears only when there was an earlier extraction to go back to, not on a first-time extraction.

If a document still sits at Ingested, Classified, or Parsed for more than a few minutes, or sits at Failed, the dashboard shows a Resume N stuck documents button. Clicking it re-dispatches every stuck document through the pipeline again with a fresh set of automatic retries — safe to use any time, since it only touches documents that have genuinely stalled (not ones still actively processing).

A document parked at awaiting credits or awaiting verification is never counted or reset by this button — being parked isn't being stuck, and one that already finished its extraction is done work waiting for a restore, not stalled work waiting for a re-run. Pressing Resume never throws away a parked document's extraction. Instead, parked documents are handed to their own resume: one that already has an extraction is restored in place, and one that doesn't is queued to run. The banner that follows reports what actually happened, not just what was attempted: if nothing could move yet, it says those documents are waiting on credits or email verification and were left untouched with their extractions intact; if everything released, it reports how many of the total were released; and if only some did — for example a workspace with credits again but an email still unverified — it reports the same release count plus how many are still waiting on credits or email verification.

If you click an action on the documents list — Approve, Reject, or similar — at the exact moment DocReadi is restarting for a deploy, you may briefly see "DocReadi was just updated — refreshing this page…" instead of a raw error. The page reloads on its own a couple of seconds later; no action is needed, and nothing you did was lost. Any other action error still shows its own explanation, and that one you should read and act on as usual.

The "awaiting credits" state

A document shows status awaiting credits when your workspace ran out of credits partway through processing it. The document isn't lost and nothing extracted so far is discarded — it's simply parked, and the Resume N stuck documents button leaves it alone rather than resetting it. As soon as your workspace is topped up (or your plan renews), documents parked at this status resume automatically; you don't need to retry them by hand. See Billing and credits for how to check your balance and top up.

In rare cases, a document parked here already carries a finished extraction that's still waiting on a billing check behind the scenes. If you use Restore previous on one of these before that check clears, it may refuse with a message saying the document is still waiting on a billing check and can't be restored yet. Nothing has been lost — try again shortly.

The "awaiting verification" state

On a trial workspace, a document shows status awaiting verification when none of the workspace's admins has verified their email address yet. Uploads still land and nothing is lost — processing simply doesn't start until an admin clicks the link in the confirmation email. Once verified, every parked document resumes automatically: documents that had already finished are restored to how they were, and the rest continue through the pipeline and bill normally. This only affects trial workspaces, and the hold follows the workspace's own admin account, not yours — paid plans and firm-managed workspaces aren't held this way. See Verifying your email if you haven't received the confirmation email.

Upgrading to a paid plan also releases parked documents, even if nobody has clicked the verification link — the same automatic resume runs the moment your plan changes. Buying a top-up on a workspace that's still on the trial plan does not release them: the hold is tied to being on the trial tier, not to your credit balance, so top-up alone leaves parked documents parked until either the plan changes or an admin verifies.

Contacting support

If you're stuck — a validation message you don't understand, a document that keeps failing, or anything account-related — email [email protected]. Including the document name and, if you have it, the exact error message from the pipeline errors page helps get to an answer faster.


See also: Reference for the full document status glossary, and Reviewing documents for fixing a flagged document.

Looking for the developer/API reference? See /api/docs-guide. Can't find an answer? Email [email protected].