Why Standard RAG Fails on Complex Enterprise Data and how Advanced Chunking Fixes It
Key takeaways:
- Fixed-size token chunking is rarely sufficient for enterprise data.
- Different document types require different chunking approaches.
- Semantic chunking works best for contracts, policies, and reports.
- Parent-child chunking balances retrieval precision with contextual understanding.
- Structure-aware chunking improves results for SharePoint, Word, and HTML documents.
- Late chunking leverages long-context embedding models to preserve document context.
- OCR cleanup, metadata enrichment, and document deduplication are just as important as chunk size.
- Measure retrieval quality before changing prompts or switching models.
- Fixing chunking can often double retrieval accuracy without changing the LLM or embedding model.
- Building the right chunking strategy upfront is significantly cheaper than reindexing and rebuilding a failed production RAG system later.
Your team shipped a RAG prototype in two weeks and it worked on the demo data. Then it hit production: 40,000 SharePoint documents, six years of ERP exports in fixed-width format, scanned contracts corrupted by OCR, and 15 versions of the same policy document sitting in the same index. Now it returns irrelevant content on most queries and the project is stalled.
According to a widely-cited post-mortem analysis, 70% of enterprise RAG deployments fail before reaching production. The root cause in almost every case is the chunking strategy that worked on demo data cannot handle enterprise data.
Table of Contents
Why Enterprise RAG Deployments Fail at Scale: The Production Data Gap
Seventy percent of enterprise RAG deployments fail before production. Most post-mortems cite retrieval quality, not LLM quality, as the primary failure point.
The gap between demo and production is structural. A proof-of-concept runs against a handful of clean, well-formatted PDFs with consistent headings. The LangChain default of 512 tokens with 50-token overlap handles that adequately. Production enterprise data is a categorically different problem.
The Production Data Problem No Pilot Reveals
A typical mid-size enterprise RAG deployment runs against:
- 30,000 to 100,000 documents in SharePoint, edited by multiple teams over five or more years, stored in at least four different file formats
- Legacy ERP exports from SAP, Oracle, or Dynamics in fixed-width or delimited format with no natural language structure
- Scanned contracts and invoices where OCR tools have corrupted clause numbers, decimal points, and technical terms
- Email archives saved as HTML or Word files, carrying embedded formatting, inline images, and signature blocks
- Policy document libraries where 8 to 15 versions of every document coexist in the same folder without version control
Each document type breaks default chunking in a different way. The result is a retrieval pipeline that surfaces chunks no LLM can use to give a correct answer.
What Poor RAG Retrieval Quality Costs an Enterprise
A July 2025 analysis from MIT’s NANDA initiative found that 95% of enterprise generative AI pilots fail to reach measurable P&L impact against $30 to $40 billion in annual US enterprise AI spend. Poor retrieval quality is the most common technical root cause.
Direct costs include: 4 to 8 weeks of misdirected LLM prompt tuning when chunking is the actual problem; full reindexing costs when the pipeline is eventually rebuilt correctly; and the compliance and liability exposure of an AI system surfacing outdated or incorrect clauses in legal and financial decision-making.
According to a 2026 industry survey, 90% of teams running RAG in production have no systematic evaluation for retrieval quality. They measure end-to-end answer quality and attribute all failures to the generation layer. The retrieval layer is invisible until the architecture team discovers the real problem, typically six months after deployment.
What Document Chunking for LLM Retrieval Actually Means
A chunk is the minimum unit of meaning that can answer a retrieval question on its own.
This definition matters because it is document-type-specific. Fixed-size chunking, the default in LangChain, LlamaIndex, and Haystack, ignores document structure entirely. It splits on token count. A 512-token window does not know whether it has cut through the middle of a legal clause, split a table row from its header, or merged content from two unrelated sections.
Why Token-Based Splitting is the Wrong Abstraction for Enterprise Data
For a contract, the correct chunk is one complete clause: from the clause number to the final sentence, with the contract name and effective date attached as metadata. A 512-token window frequently splits a long clause across two chunks. The first contains the opening conditions; the second contains the obligations. Neither is interpretable on its own.
For an ERP export, the correct chunk is one structured record: all column values for a single row, tagged with the report type, period, and source system. A 512-token window cuts across rows and columns with no awareness of the tabular structure underneath.
For a SharePoint policy document, the correct chunk is the content under a single heading: everything that belongs to one H2 section, with the heading preserved in metadata. Mixing content from two consecutive H2 sections in a single chunk causes the retriever to return contextually incoherent results on targeted queries.
The Semantic Gap Between Query Language and Document Language
When a user queries an enterprise RAG system, their phrasing differs from the exact language in the source document. A procurement analyst asking “what are the delivery penalties for Vendor A?” uses different language than the contract clause that reads “Liquidated damages shall be assessed at 1.5% of the invoice value per day of delay.” A well-constructed chunk, mapped to a single clause with the vendor name and contract date in metadata, narrows the embedding distance between query and content. A chunk that spans multiple clauses from multiple sections widens it. This is not a prompt engineering problem. It is a data preparation problem.
Five Advanced Chunking Strategies for Enterprise RAG Pipelines
The right strategy depends on the document type. These five approaches cover the full range of enterprise data formats.
Semantic Chunking for Narrative and Legal Document Retrieval
Semantic chunking embeds each sentence and groups consecutive sentences into a single chunk when their cosine similarity remains above a threshold, typically 0.75 to 0.85. When similarity drops, a new chunk begins. The result is chunks that align with natural topic shifts in the source text.
This is the right approach for contracts, policy documents, research reports, and any text where paragraph structure does not cleanly map to topic boundaries. Research published at NAACL 2025 evaluating chunking strategies for policy document QA found that structure-respecting chunking approaches outperformed fixed-size splitting on recall and answer quality when tested against legal and regulatory corpora.
The trade-off is ingest compute. Semantic chunking requires embedding every sentence during the chunking phase, not just at indexing time. On a 50,000-document corpus at an average 2,000 tokens per document using OpenAI’s text-embedding-3-small at $0.02 per 1M tokens, the total embedding cost is approximately $2.00. Processing time on a standard CPU server is 3 to 6 hours depending on sentence length variance.
Recursive Character Splitting with Custom Separators for Structured Formats
Recursive character splitting uses a priority-ordered list of separator strings. It tries the first separator; if the resulting chunk exceeds the target size, it moves to the next. The default LangChain configuration uses:
separators = ["\n\n", "\n", " ", ""]
These defaults are wrong for enterprise formats. For legal documents with numbered clauses, replace them with:
separators = [r"\n\d+\.\d*\s", r"\n[A-Z][A-Z\s]{3,}\n", "\n\n", "\n"]
For ERP exports with fixed-width row structure, define separators based on your specific record terminator. For HTML-heavy documents stripped to plain text, use "\n\n" as the primary separator and paragraph-level fallback.
Replacing default separators with document-format-specific ones is a two-hour code change. It requires no model change, no retraining, and no infrastructure cost. On structured enterprise data, it can double retrieval precision in a single afternoon.
Parent-Child Chunking: Precision Retrieval with Full-Document Context
Parent-child chunking maintains two separate representations of the same content:
- Child chunks at 100 to 200 tokens: indexed in the vector store for precision retrieval
- Parent chunks at 500 to 1,000 tokens: stored in a document store, returned to the LLM when a child chunk is matched
The retriever scores the small child chunk, which is precise enough to achieve high cosine similarity on a targeted query. It then returns the larger parent chunk to the LLM, providing the full context the model needs to generate an accurate answer.
This directly resolves the half-clause problem. The child chunk contains the matching terms; the parent chunk contains the complete clause, including the conditions, obligations, and exceptions. LlamaIndex’s NodeWithScore and LangChain’s ParentDocumentRetriever both implement this pattern. Storage overhead is approximately 2x compared to single-level chunking (you maintain both child and parent stores), but retrieval precision improvements on long-form enterprise documents consistently justify it.
Document-Structure-Aware Chunking for SharePoint and Office File Formats
Document-structure-aware chunking extracts the heading hierarchy first, then chunks within each section. Every chunk is guaranteed to fall within a single topic boundary defined by the document’s own structure.
For Word documents and SharePoint exports, the Unstructured library’s partition_docx function returns content with heading-level metadata attached. Each content block carries its H1, H2, and H3 parents. Chunking then runs within each heading section, not across section boundaries. For HTML documents, partition_html provides equivalent heading extraction.
This approach is critical for SharePoint corpora where H2 and H3 headings represent genuine topic transitions (not decorative formatting). Mixing content across heading boundaries in a single chunk is one of the most common sources of topically incoherent retrieval results in document-heavy enterprise deployments. Without structure-aware chunking, a policy document chunk might contain the last paragraph of “Section 4: Approval Process” and the first paragraph of “Section 5: Exception Handling” as a single embedded unit. The retriever surfaces it for queries about either topic and it answers neither correctly.
Late Chunking with Long-Context Embedding Models
Late chunking inverts the standard order of operations: it embeds the full document first using a long-context model, then divides the resulting embeddings into segments, rather than chunking the text first and then embedding each chunk.
The benefit is contextual continuity. With standard chunking, each chunk is embedded in isolation. A term defined in section 1 of a technical specification carries no definitional context when section 7 is embedded separately. With late chunking, the full document context is preserved in the embeddings of every segment.
Current long-context embedding models include jina-embeddings-v3 (8,192-token context window) and Voyage AI’s voyage-large-2-instruct (16,000-token context). Both cover the vast majority of corporate document lengths. Research on cross-document topic-aligned chunking found that late-style embedding approaches achieved 0.93 faithfulness on multi-hop retrieval tasks, compared to 0.83 for contextual retrieval and 0.78 for standard semantic chunking on HotpotQA benchmarks.
Anthropic’s 2024 contextual retrieval research, which involves attaching context summaries to each chunk before embedding, is the publicly available closest analogue to late chunking. It demonstrated a 67% reduction in retrieval failure rates across a 200,000-document test corpus. This is the strongest independent public benchmark for chunk-level context preservation available.
For retrieval architecture decisions that go beyond chunking, including when to layer a knowledge graph alongside your vector store, our AI integration services team covers the full pipeline design.
Enterprise Document Types That Break Standard RAG Chunking Pipelines
Selecting the right chunking strategy is necessary but not sufficient. Enterprise document types require pre-processing before any chunking strategy is applied. Skipping this step corrupts the embeddings regardless of which method you use downstream.
Scanned PDFs and OCR Corruption in Document Chunking Pipelines
Raw OCR output from scanned PDFs is unreliable at the character level. Tesseract and commercial OCR services produce consistent substitution errors on specific character classes: “0” and “O”, “1” and “l” and “I”, clause numbers like “7.3” rendered as “7,3” or “73”. These errors produce corrupted embeddings. A chunk containing “C1ause 7.3” and a query asking about “Clause 7.3” produce vectors with meaningfully different cosine similarity scores. The retriever misses the match.
The fix is a two-layer pre-processing pipeline before any text splitting:
- OCR extraction: Tesseract (open-source, no API cost) or a cloud OCR service. Google Document AI and AWS Textract both charge approximately $1.50 per 1,000 pages at standard tiers. For contract-heavy corpora with 50,000 scanned pages, expect $75 to $150 for the initial OCR pass.
- Domain-specific correction: a dictionary of known substitution patterns for your document domain (legal clause formatting, financial notation, part number formats), followed by a regex normalisation pass on numeric and currency patterns.
Do not chunk OCR output without a correction layer. OCR errors that reach the vector index require a full reindex to fix.
Fixed-Width ERP Exports and Legacy Database Dumps
SAP, Oracle, and legacy Dynamics exports in fixed-width or space-delimited format are among the most common sources of retrieval failure in enterprise RAG deployments. A 512-token sliding window cuts across column boundaries with no awareness of tabular structure, mixing data from different fields and different rows in the same chunk. The retriever returns a fragment containing half a profit centre allocation and half an inventory movement. No LLM can reconstruct the intended meaning.
The correct approach is a custom row-reconstruction parser before any text splitting:
- Read the header row to establish column widths and field names from the format specification
- Parse every data row into a structured key-value record using the column map
- Embed each record as a single chunk, with the report name, period, source system, and relevant dimension values (cost centre, plant code, material number) as metadata
A 150-person manufacturing firm running SAP S/4HANA came to us after their internal RAG pipeline returned irrelevant chunks on 68% of production queries against ERP data. The root cause was fixed-width export files chunked with default LangChain settings. After implementing a custom row-reconstruction parser with metadata enrichment (report type, fiscal period, cost centre, plant), chunk precision on structured financial queries improved from 31% to 74%. The embedding model and LLM prompt were unchanged. Total implementation time: three engineering days.
HTML Emails and Legacy Word Files with Formatting Artifacts
HTML emails saved as Word documents, and HTML content exported directly to disk, carry formatting artifacts that corrupt semantic chunkers: <table>, <tr>, <td>, <div>, stray entities, inline CSS declarations, header and footer boilerplate. A chunk that is 40% HTML markup embeds poorly against natural language queries. The vector representation reflects markup noise rather than content meaning.
The fix is always to strip formatting before chunking. Use BeautifulSoup’s get_text(separator="\n") for HTML stripping or the Unstructured library’s partition_html and partition_docx functions, which return clean text with structural metadata preserved. After stripping, split on paragraph boundaries ("\n\n"). This step adds 30 to 60 minutes to the pipeline build time and prevents an entire category of retrieval failure.
One specific edge case: email threads with inline reply chains. Each reply block should be treated as a separate document with the sender, date, and subject as metadata. Chunking an entire email thread as a single document produces chunks that span multiple conversations with no attribution.
Versioned Documents and Deduplication in Enterprise RAG Indexing
A SharePoint document library with six years of policy documents typically contains 8 to 15 versions of every major document. Without deduplication before indexing, all versions are indexed simultaneously. The retriever surfaces the 2022 version of a data retention clause and the 2025 version in the same context window with near-identical embedding scores. The LLM synthesises an answer that blends contradictory requirements from two different years.
The fix is a deduplication layer before indexing:
- Hash each candidate chunk (SHA-256 on cleaned text after stripping whitespace normalisation)
- Compare new chunks against existing index entries using MinHash LSH at a 0.90 cosine similarity threshold
- For matched near-duplicates, index only the most recent version by document last-modified date
- Tag every chunk with
doc_version,effective_date, and asuperseded_byfield for lineage tracking
For document libraries with explicit version naming conventions (policy-v3.docx superseding policy-v2.docx), explicit lineage tracking is more reliable than hash-based deduplication. In both cases, the metadata carried on every chunk must include the effective date so that LLMs can surface the correct version in response to queries that are version-sensitive.
Chunk Overlap, Metadata Enrichment, and Retrieval Pre-Filtering
These two configuration decisions have more impact on retrieval quality than most teams realise. Both are routinely misconfigured.
Optimal Chunk Overlap by Document Type for RAG Pipelines
Overlap preserves semantic context at chunk boundaries. The last N tokens of one chunk appear at the start of the next, ensuring that a key fact straddling two chunks is visible to at least one retrieval candidate.
Chroma’s evaluating-chunking research identified a “context cliff” at approximately 2,500 tokens: retrieval performance degrades when chunk plus overlap exceeds this threshold. Keeping total context below 2,500 tokens preserves LLM comprehension quality on the generation side.
Recommended overlap ranges by document type:
- Narrative text (contracts, policies, analyst reports): 20 to 50 tokens
- Technical documentation (API specs, architecture documents): 10 to 20 tokens
- Structured tabular data (ERP exports, financial tables): 0 tokens
- Email threads and meeting transcripts: 30 to 60 tokens
At 20% overlap on 512-token chunks, the vector store grows by up to 20%. On a corpus of 500,000 chunks at a managed Qdrant Cloud cost of approximately $65/month at 10M vectors, an oversized index adds $10 to $15/month in storage cost. More importantly, near-duplicate chunk retrieval wastes the LLM’s context window with redundant information and increases generation latency.
Metadata Enrichment Fields That Change Retrieval Precision
Metadata filtering before vector search cuts the candidate pool before any cosine similarity computation runs. A query about “Q3 2024 invoices from Vendor A” filtered on doc_type = invoice, period = Q3_2024, and vendor = Vendor_A reduces the search space from potentially millions of chunks to a few hundred. Cosine similarity then runs against a pre-filtered, highly relevant subset. The precision gain is an order of magnitude on corpora with high document-type diversity.
Attach the following metadata fields to every chunk at ingest time:
| Field | Value | Used for |
|---|---|---|
source |
File path or URL | Attribution and audit trail |
doc_type |
Contract, invoice, policy, ERP export, email | Pre-filtering by document category |
heading |
Nearest H2 or H3 above chunk | Topical pre-filtering |
doc_date |
Last-modified date | Version filtering |
author |
Document owner or team | Access-control filtering |
version |
Version string if present | Deduplication and lineage |
For enterprises managing both structured ERP data and large document libraries, our generative AI integration services cover the full metadata schema design and retrieval pipeline architecture.
How to Build a RAG Chunking Evaluation Pipeline
Most teams measure end-to-end answer quality and assume the LLM is responsible for all errors. According to a 2026 practitioner survey, 70% of teams running RAG in production have no systematic retrieval-level evaluation. This is why poor chunking persists for months without diagnosis.
Chunk Relevance Rate, Chunk Precision, and Semantic Coherence
Chunk relevance rate: Run 50 to 100 representative queries across your document type distribution. For each query, retrieve the top 5 chunks using your current pipeline. Manually label each chunk as relevant (contains the information needed to answer the query) or irrelevant. Divide total relevant chunks by total retrieved chunks across all test queries. A rate below 60% on your test set indicates a chunking problem, not an LLM problem. Chroma’s research demonstrated that 85 to 90% recall is achievable with correctly configured chunking on clean enterprise data. Below 60% is a clear signal to fix chunking before touching anything else.
Chunk precision: Log which retrieved chunks the LLM actually cites or draws on in its generated response. Divide used chunks by retrieved chunks. If the LLM consistently ignores more than half the retrieved context, the chunks are providing the wrong unit of meaning for the query type. This often indicates chunks that are too large (the LLM skims them) or too topically broad (they contain partial answers to multiple questions).
Semantic coherence score: For each sampled chunk, verify whether it can stand alone as a complete answer to a plausible retrieval question. A chunk that requires reading an adjacent chunk to make sense is at the wrong boundary. Score as pass/fail and track by document type.
Running the Evaluation Before Tuning the LLM
Build this evaluation before adjusting the LLM prompt or switching embedding models:
- Export 50 representative queries from production query logs or stakeholder interviews
- Run retrieval only (no generation) and log the top 5 chunks per query
- Score each chunk set for relevance against the query
- Calculate chunk relevance rate per document type
- Rank document types by failure rate
- Fix chunking on the worst-performing document types first, re-evaluate, then proceed
Changing the LLM prompt while chunking is broken produces marginal, inconsistent gains. Fix the retrieval layer first. In our experience, a well-scoped chunking audit and correction pass adds more measurable accuracy improvement than any prompt engineering iteration on a system with broken retrieval.
Chunking Infrastructure Costs for Enterprise RAG Deployments
Cost is rarely discussed in chunking strategy guides. Here is what enterprise corpora actually cost to build and maintain.
Embedding API Costs for Large Document Corpora
Embedding costs are largely one-time at initial ingest and recurring only on document updates. The dominant variable is model choice:
| Embedding Model | Cost per 1M tokens | Cost to embed 50M tokens | Notes |
|---|---|---|---|
| OpenAI text-embedding-3-small | $0.02 | $1.00 | Lowest cost, strong baseline |
| OpenAI text-embedding-3-large | $0.13 | $6.50 | Higher precision on domain text |
| Voyage voyage-large-2-instruct | $0.12 | $6.00 | Strong on legal/financial text |
| Self-hosted (BAAI/bge-large) | $0 API cost | $1.50 in GPU compute | A100 GPU at $3/hr, 30 min for 50M tokens |
A 50,000-document corpus at an average 1,000 tokens per document contains 50M tokens. The initial embedding cost ranges from $1 to $6.50 depending on model choice. Full reindexing after a chunking strategy change costs the same.
Vector Database Storage Costs After Chunking
Chunking granularity directly affects vector store size and monthly cost. A finer-grained chunking strategy produces more chunks and higher storage costs.
At 10M vectors (approximate for a 50,000-document corpus chunked at 500 tokens with 10% overlap):
| Vector Database | Managed Monthly Cost | Self-Hosted Monthly Cost |
|---|---|---|
| Pinecone Serverless | ~$70 | Not available |
| Weaviate Cloud | ~$135 | ~$30 compute |
| Qdrant Cloud | ~$65 | ~$30 compute |
| pgvector on RDS | ~$45 | ~$20 EC2 + storage |
Source: LeanOps 2026 vector database pricing comparison
Monthly infrastructure cost for a properly chunked 50,000-document enterprise corpus runs $45 to $135/month on managed vector infrastructure. Self-hosted on Kubernetes reduces this to $20 to $40/month in compute cost.
Engineering Cost of Getting Chunking Right the First Time
The engineering cost of building a correct chunking pipeline upfront is significantly lower than the cost of fixing it after deployment:
| Task | Engineering Time | Cost at $100/hr |
|---|---|---|
| Document type audit and chunking strategy design | 2 to 4 days | $1,600 to $3,200 |
| Custom parser implementation (per document type) | 1 to 2 days | $800 to $1,600 |
| Metadata schema design and implementation | 1 to 2 days | $800 to $1,600 |
| Evaluation pipeline build | 2 to 3 days | $1,600 to $2,400 |
| Full index build and validation | 1 to 2 days | $800 to $1,600 |
| Total (upfront, correct build) | 7 to 13 days | $5,600 to $10,400 |
Discovering and fixing a broken chunking strategy post-deployment adds:
- 4 to 8 weeks of misdirected LLM tuning effort: $12,800 to $25,600
- Chunking audit and redesign: $3,200 to $6,400
- Full reindex (includes downtime planning and rollback testing): $4,800 to $9,600
- Total remediation cost: $20,800 to $41,600
Building chunking correctly the first time costs roughly one-quarter of the remediation cost. Our AI development services engagements always begin with a document type audit and chunking strategy design session before a line of indexing code is written.
If Your RAG Pipeline Is Already in Production with the Wrong Chunking Strategy
Reindexing is unavoidable once the diagnosis is confirmed. Sequence the remediation correctly to limit disruption: run a chunk quality audit to identify the document types driving the most retrieval failures. Fix and reindex those document types first. Measure the improvement. Then extend the correct strategy to the remainder of the corpus. This approach gives you measurable quality gains to report before committing to a full corpus reindex.
Have complex internal data that generic RAG tools cannot handle? Talk to our integration architects about building a custom data pipeline designed for your specific document formats, data types, and infrastructure constraints.
Frequently Asked Questions About Advanced Chunking Strategies for RAG
What chunk size should I use for enterprise RAG document processing?
There is no universal token count that works across document types. Derive chunk size from document structure. For narrative documents such as contracts and policies, semantic chunking at natural clause or paragraph boundaries consistently outperforms fixed token counts: 400 to 600 tokens is a useful starting range for validation, but the actual boundary should be semantic, not numeric. For structured ERP data, the chunk unit is one complete record regardless of token length. For mixed-format corpora with diverse document types, start with parent-child chunking at 150 tokens for retrieval and 600 tokens for context, then measure chunk precision against your actual query distribution. Any configuration scoring above 70% chunk precision is a working baseline. Target 85% or above for production-grade retrieval.
Does changing chunking strategy require reindexing the entire vector database?
Yes. Changing chunk boundaries changes the embeddings. Full reindexing is required and cannot be avoided. Architect for this from the start: maintain a staging vector store where new chunking strategies are validated against a representative sample (10 to 20% of the corpus) before committing to a full production reindex. On Weaviate and Qdrant, parallel index collections support zero-downtime migration. On pgvector, a separate schema version achieves the same result. Plan for an 8 to 24-hour reindex window for a 50,000-document corpus on standard managed infrastructure.
How does chunking strategy affect RAG query latency in production?
Chunking does not affect query-time latency directly. It affects the size and quality of context returned to the LLM, which affects generation latency. Parent-child chunking increases average payload size (the parent chunk is passed to the LLM rather than the child), adding 10 to 30ms to generation time on typical enterprise LLM deployments. Late chunking adds no query-time latency once the index is built. The main latency risk is over-large chunk sizes: a 1,500-token chunk passed to the LLM adds roughly 40 to 80ms to generation time compared to a 400-token chunk, depending on the inference provider. At scale across thousands of daily queries, this compounds into meaningful infrastructure cost.
Can chunking fixes improve RAG answer accuracy without changing the embedding model or LLM?
Yes. In the SAP S/4HANA engagement above, chunk precision improved from 31% to 74% with no change to the embedding model, the LLM, or the prompt. Chunking determines the quality of units that enter the vector index. The embedding model determines how those units are represented in the embedding space. Optimise chunking first. Only evaluate the embedding model after chunking quality is measured and validated. Switching embedding models while chunking is broken is the single most expensive mistake in enterprise RAG pipeline design: it resets the entire index at material cost without addressing the root cause.