The context id assigned to this file at staging.
OptionalerrorMachine-readable class of a failed file, for outcomes to treat differently from real failures.
Terminal — reported with retryable: false — are 'CONTENT_TOO_LARGE' (past the per-context
ceiling), 'ENCRYPTED_DOCUMENT', 'NO_EMBEDDABLE_CONTENT', 'SOURCE_OVER_PROVIDER_LIMIT' (the
bytes exceed what the extraction provider accepts), 'UNREADABLE_WORKBOOK' (a spreadsheet whose
content the parser cannot read) and 'UNSUPPORTED_FILE_TYPE'.
'DUPLICATE_CONTENT' is a skip rather than a failure: the KB already holds this content.
'EXTRACTION_TIMED_OUT' stays retryable — the deadline is contended, so a borderline document can
cross it under load. So do 'SOURCE_UNREACHABLE' (the provider could not fetch the source, which a
fresh link can fix) and 'PROVIDER_ACCESS_DENIED' (the provider refused the credential or its quota is
spent, a fault of the environment). 'JOB_FULL': the job's request ceiling had no room left for this
file, so re-submit it in a fresh job; a file that alone exceeds the ceiling fails this way in every job.
Additive; absent for ordinary failures.
OptionalerrorPresent only when status is 'failed': the terminal failure reason.
OptionalerrorPresent only on a failed file an extraction provider answered: a stable fingerprint of that answer (provider, HTTP status and provider code), so a caller can tell the same failure repeating from a new one.
OptionalgraphSet on a completed file that is stored and searchable but that the job withheld from graph indexing;
the bulk counterpart of UpsertKnowledgeBaseContextsResponse.graphIndexingSkippedContextIds, and
graphIndexingSkipReason says why. Records the job's own outcome: it is written when the job's graph
run admits its files, which can be after the job completes (a poll of the job status sees it, the
terminal push may not), and it stays set even if a later graph build indexes the file.
OptionalgraphWhy graph indexing was withheld; present exactly when graphIndexingSkipped is.
OptionalimageTotal number of failed images, which exceeds imageFailures.length when the list was capped.
OptionalimageFirst images (capped) the context lacks a description for because describing them failed; a
completed file is otherwise fully ingested. Absent when every image succeeded.
OptionalretryablePresent only on a failed file: the same bytes fail the same way, so a caller must park the file instead of re-submitting it. Absence means retryable.
User-facing per-file status.
The file's title — the uploaded file name, or the caller-supplied title for text contexts.
Per-file/per-context status within a bulk-ingestion job, so a caller can see which file finished, which is still processing, and why a file failed.