Data Ingestion: Empty API Responses Fixed, Duplicate Documents Eliminated, Richer Enrichment and a Queue Dashboard Built for Scale

· Data Ingestion · Bug Fix · All updates

A round of work on Data Ingestion: one silent failure fixed, one long-standing duplication problem closed, better enrichment on every document, and a queue dashboard that no longer struggles at volume.

01 Empty API responses fixed

The Data Ingestion API was returning empty responses. A PHP 8 compatibility issue in the API layer caused all ingestion, embedding and AI endpoints to fail silently. Full functionality is restored for ingest, embed, ai_summary and all related API calls.

02 No more duplicate documents across the two ingestion methods

Using both the Web Crawler and Data Ingestion on the same index produced duplicate documents, because a trailing slash was enough to change the computed document ID. URIs are now normalized — the trailing slash is stripped — before the document ID is computed, so both methods produce the same document instead of two.

Before Crawler: /page/ Ingestion: /page two documents in one index After both normalize to /page one document ID
A trailing slash used to be the difference between one document and two.

03 Better enrichment on every document

  • Structured text for embeddings. Embeddings now use structured text (text_t) when it is available, giving richer semantic vectors.
  • Longer sentiment input. Sentiment analysis now reads the first ten complete sentences instead of just the title and description.
  • Document size. The document size field is now computed automatically.

04 A queue dashboard built for volume

The Data Ingestion queue dashboard has been redesigned for scale. Indexes and jobs load progressively on click instead of all at once, and a per-index progress dialog shows real-time status for each index separately. It handles thousands of jobs without performance degradation.

View the full changelog