@squidcloud/client
    Preparing search index...

    Interface BulkIngestionFileStatus

    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.

    interface BulkIngestionFileStatus {
        contextId: string;
        errorCode?:
            | "CONTENT_TOO_LARGE"
            | "DUPLICATE_CONTENT"
            | "ENCRYPTED_DOCUMENT"
            | "EXTRACTION_TIMED_OUT"
            | "JOB_FULL"
            | "NO_EMBEDDABLE_CONTENT"
            | "PROVIDER_ACCESS_DENIED"
            | "SOURCE_OVER_PROVIDER_LIMIT"
            | "SOURCE_UNREACHABLE"
            | "UNREADABLE_WORKBOOK"
            | "UNSUPPORTED_FILE_TYPE";
        errorMessage?: string;
        errorSignature?: string;
        graphIndexingSkipped?: boolean;
        graphIndexingSkipReason?: BulkIngestionGraphSkipReason;
        imageFailureCount?: number;
        imageFailures?: ContextImageFailure[];
        retryable?: false;
        status: "completed"
        | "failed"
        | "processing";
        title: string;
    }
    Index
    contextId: string

    The context id assigned to this file at staging.

    errorCode?:
        | "CONTENT_TOO_LARGE"
        | "DUPLICATE_CONTENT"
        | "ENCRYPTED_DOCUMENT"
        | "EXTRACTION_TIMED_OUT"
        | "JOB_FULL"
        | "NO_EMBEDDABLE_CONTENT"
        | "PROVIDER_ACCESS_DENIED"
        | "SOURCE_OVER_PROVIDER_LIMIT"
        | "SOURCE_UNREACHABLE"
        | "UNREADABLE_WORKBOOK"
        | "UNSUPPORTED_FILE_TYPE"

    Machine-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.

    errorMessage?: string

    Present only when status is 'failed': the terminal failure reason.

    errorSignature?: string

    Present 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.

    graphIndexingSkipped?: boolean

    Set 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.

    graphIndexingSkipReason?: BulkIngestionGraphSkipReason

    Why graph indexing was withheld; present exactly when graphIndexingSkipped is.

    imageFailureCount?: number

    Total number of failed images, which exceeds imageFailures.length when the list was capped.

    imageFailures?: ContextImageFailure[]

    First images (capped) the context lacks a description for because describing them failed; a completed file is otherwise fully ingested. Absent when every image succeeded.

    retryable?: false

    Present 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.

    status: "completed" | "failed" | "processing"

    User-facing per-file status.

    title: string

    The file's title — the uploaded file name, or the caller-supplied title for text contexts.