Struxen Docs

Processing

What happens to a document after it uploads, how much of it is actually read, the status vocabulary, and why a scanned PDF comes back empty

Uploading a file writes a document record and starts ingestion. Ingestion runs in the background, so the file is downloadable immediately and searchable a little later.

The most important thing on this page: a scanned PDF with no text layer will not be read. Nothing on the surface stops you from uploading one. Read What gets read, and how much before you decide which file to send.

What the pipeline does

In order, for one document:

  1. Duplicate check. A content hash of the file is compared against the rest of the project. An exact match stops here, before any AI work runs and before any credits are spent.
  2. Text read. The PDF's own text layer is pulled out.
  3. Classification. The document is typed and given a discipline.
  4. Title-block extraction. Sheet number, title, discipline, revision and issue date are read.
  5. Vision extraction. The first page is rendered as an image and read for entities and tables.
  6. Checks. A grounding pass flags low-confidence values, a resolution pass reconciles entities against what the project already knows, and a revision pass looks for an existing document this one supersedes.
  7. Chunking and indexing. The extracted text is split, embedded and written to the search index so STRUX can cite it.

A specification book takes an extra step first: it is examined for CSI MasterFormat section boundaries, and if it holds more than one section it is split, with each section written as its own document and processed separately. See Specifications.

What gets read, and how much

This is where expectations most often break. The honest picture:

InputWhat is read
Born-digital PDFThe text layer, capped at 100 pages for a specification and 10 pages for anything else. The first page is also rendered and read by vision.
Scanned PDF (no text layer)Effectively nothing. There is no text layer to read, and the first-page vision pass is all that runs.
Images (.png, .jpg, .tif, and the rest)Vision only. No text extraction runs on an image.
Office files (.doc .docx .xls .xlsx .ppt .pptx)Accepted and stored. No Office parser is bundled, so the contents are not analysed. Use them for retrieval of the file itself, not for questions about what is inside it.
Text files (.txt .csv .rtf)Read as text, up to the same character ceiling.

OCR does not run. There is no optical character recognition step in the pipeline today. A page that is a photograph of text is, to the pipeline, a picture with nothing in it. The practical consequence is that a scanned spec book or a scanned as-built can land with the status Indexed and still return nothing when you ask STRUX about it.

If your source is a scan, get a born-digital PDF from the design team, or run OCR on it yourself before uploading. The file will process the same way; the difference is whether there is any text for the pipeline to find.

Status vocabulary

The status shows twice, and the two places word it slightly differently. The Health column on a row is terse; the detail panel spells it out.

On the rowIn the detail panelWhat it meansRe-process offered
IndexedIndexed — searchableProcessing finished. The document is in the knowledge base.No
ProcessingProcessingIngestion is running, or the document is queued and has not started. Both read the same.No
FailedExtraction failedIngestion failed or was cancelled. The reason is shown when the pipeline recorded one.Yes
Credits blockedBlocked — out of creditsThe project ran out of credits before this document could be processed. It is stored and downloadable.Yes
DuplicateDuplicate — skippedAn identical file already exists on this project. Nothing was processed and nothing was charged.No
Not processedNot processedStored deliberately without AI processing.Yes

The full cross-product list of status vocabularies is at Statuses.

Not processed appears in two situations. On a base plan, which includes no AI, uploads store, render, version and download normally and are never indexed. It also appears where an import was deliberately taken without processing. In both cases the state is terminal and honest: nothing is spinning, and Re-process is there for when the plan changes.

Duplicate never names the original. The panel says the document is a duplicate of another document and was skipped to keep the index clean, but the identifier of the original is not carried through to this screen.

Re-processing

Open the document from the Document Center and click Re-process in the detail panel footer. You get "Re-processing started. The status updates as it runs."

Re-process is offered on exactly three states: Extraction failed, Blocked on credits and Not processed. It is not offered on Indexed, Processing, Pending or Duplicate, and the server refuses those outright, so a button on them would only ever produce an error.

Re-processing a document blocked on credits re-checks the balance. If the balance is still zero it is simply blocked again. Top up first, from Settings → Credits & usage, which the panel links directly. See Billing.

Timing

Ingestion has 5 minutes to finish one document. If it fails in a way the platform can retry, it is retried twice. A job that cannot be delivered within an hour is given up on and the document lands Extraction failed.

A specification book that splits does not run inside one 5 minute window. Each section becomes its own document with its own run, so a large book finishes over a longer period, section by section.

While anything is in flight, the Document Center shows a processing lane naming each document, and the health strip counts them.

Troubleshooting

A document says Indexed but STRUX says it cannot find anything in it. Two causes, and both are common.

The first is a scanned PDF. There was no text to extract, so the document finished successfully with nothing indexed. Check the file: if you cannot select text in it in a PDF reader, neither can Struxen. Replace it with a born-digital PDF or an OCR'd copy and upload again.

The second is a long document. Text extraction stops at 100 pages for a specification and 10 pages for everything else. If the answer is on page 40 of a 40-page report, it was never read. Split the document and upload the part that matters, or upload the specification as a spec book so it splits into sections.

A document has been Processing for hours. In rare cases the final write back to the document record fails and the row is left claiming to be in progress when nothing is running. There is no user-facing recovery for this state: Re-process is not offered on Processing, and the server refuses it. Contact support with the project and document name.

Sheets from a drawing set are not in the Document Center. Once a sheet finishes cleanly it is filed under Drawings with its set. Sheets that failed, are still processing, or were blocked stay listed in the Document Center so they can be found and retried. See Drawing sets.

Everything on the project says Not processed. The organisation is on a plan that includes no AI. Uploads still store and download; nothing is indexed. See Billing.

A Word or Excel file uploaded and STRUX has nothing to say about it. That is expected. Office files are stored, not parsed. Export the content to PDF if you need it in the knowledge base.

A file you meant to add came back as a Duplicate. The content hash matched a file already on the project exactly. If it really is a different document, check you did not upload the same export twice under two names.

On this page