When something goes wrong, inspect in this order:
- the UI validation panel
- the runtime log file
source mode:
logs/pdf_to_esx_agent.logpackaged mode:%LOCALAPPDATA%\PDF-TO-ESX-Agent\logs\pdf_to_esx_agent.log - the generated
*.canonical.jsonif export succeeded with warnings - the generated
*.esx.xmlif XML shape looks suspicious
| Symptom | Likely stage |
|---|---|
| file rejected before work starts | ConversionService path validation |
| no readable text | DocumentLoader / OCR availability |
| missing claim/property metadata | MetadataExtractor |
| weak or missing detail lines | LineItemExtractor |
| totals mismatch warnings | TotalsExtractor or EstimateMerger |
| output package rejected | EsxWriter or ExportPackageValidator |
- source log:
logs/pdf_to_esx_agent.log - packaged log:
%LOCALAPPDATA%\PDF-TO-ESX-Agent\logs\pdf_to_esx_agent.log *.canonical.json*.esx.xmldocs/TESTING_NOTES.md
- reproduce with one PDF first
- inspect whether the document was classified as native, mixed, or scanned
- inspect canonical JSON before touching XML generation
- decide whether the bug belongs to ingestion, extraction, merge, or export
- add or update a regression test when the fix is stable
- changing export code to hide parser problems
- changing the UI to suppress meaningful warnings
- assuming OCR should replace native text everywhere