Full Document see: https://docs.google.com/document/d/1G6mldysE1IezIHoKlOx4Tns_8cw1TwBbxwrDtj7sHyE/edit?usp=sharing
BUG REPORT: Systemic RAG Retrieval & Context Truncation Failures Across Notebooks & Formats
Executive Summary
Since August 1, 2026, severe and systemic retrieval errors have been observed during source processing in NotebookLM / Gemini Notebook. The system frequently aborts fact-checks or list generation tasks, claiming that specific signature numbers or source files are missing or unreadable, even though all signatures are fully present in the uploaded source files.
Key Findings from Multi-Day QA Testing:
- Source Format Invariance: Switching from plain text (.txt) to Google Docs does NOT resolve the issue.
- Source Splitting Invariance: Splitting large source files (2,769 records) into smaller sub-files (e.g., 690 records) does NOT resolve the issue.
- Quantity Reduction: Reducing query scopes (e.g., checking only 10-22 signatures) only temporarily bypasses the error; failures reoccur after 2–3 runs.
- Cross-Notebook & Cross-Source Impact: The issue originally observed in the “Niederdorfelden” source now also occurs in separate notebooks and distinct sources (e.g., “Rendel_R0001-R0900.txt”).
- Code Execution Dilemma: When instructed to use Python/Regex, the system attempts to search the local filesystem, fails to find physical files (as sources are passed via context/snippets), and drops signatures.
Source Dataset Profile (Test Case 1: Niederdorfelden)
- File Name: Niederdorfelden_N0001-N2769.txt (also tested as Google Doc & split files NDF0001-0690.txt)
- Size: 695 A4 pages | 170,879 words | 1,274,883 characters
- Total Records/Signatures: 2,769
- Record Structure Example (#N0002):
#N0002: #Signatur: HHStAW, 22, U 111 | #Datierung: 1234 | #Digitalisat: Yes | #Regest: Reinhard von Hanau… | #Zeugen: … | #Orte: Dorfelden, Hanau…
Detailed QA Test Logs
Part 1: Project Notebook “Niederdorfelden” & List Filtering
#46 (08/02/2026, Evening): Prompt modified to enforce strict source limitation:
“For the evaluation, USE ONLY the source file Niederdorfelden_N0001-N2769.txt and evaluate signatures N0001-N0022. No comments or notes! Create a list of SECULAR RULING NOBILITY ordered by rank. NO lower, local, or administrative nobility.”
#48 (08/03/2026, 06:50 AM): Queries failing. Fact-checks abort; list formatting rules from Chat Config are ignored.
#49 (08/03/2026, 08:00 AM): AI substitutes full names (e.g., “Ulrich von Hanau”) with generic titles (“Count of Hanau”). Formatting rules completely bypassed.
#50 (08/03/2026, 08:58 AM): System Error Output:
“Fact-check aborted: The following signature numbers (#N0445, #N0449, #N0461, #N0484, #N0495, #N0505, #N0506, #N0513, #N0548, #N0561, #N0588, #N0619, #N0621, #N0630, #N0633, #N0639, #N0644, #N0665, #N0705) from the source N-Ruling Nobility 3 could not be read and verified.”
#53 (08/04/2026, 06:36 AM): Re-testing. System claims entire uploaded sources cannot be found. System prompts/chat configurations ignored.
#55 (08/04/2026, 07:27 AM): Prompt: “USE ONLY Niederdorfelden_N0001-N2769.txt, evaluate N0001-N0022. List lower/local nobility (Knights, Squires). Exclude origin names.”
Result: Empty headers output (Knights / Squires / Other), incorrectly implying zero matching entities exist.
#57-#59 (08/04/2026, 07:43 AM - 07:49 AM): Prompt #55 executed again. Sometimes succeeds, but subsequently includes non-nobles, completely bypassing context rules.
Part 2: Notebook “Fact-Check” (A/B Testing & Source Splitting)
#2-#3 (08/03/2026, 09:42 AM): Fact-check aborted on signatures #N0518, #N0619, #N0630, #N0644.
#4-#7 (08/03/2026, 09:52 AM - 10:18 AM): Decreasing batch size allows checks to pass temporarily, but reductions eventually fail again even on single signatures (e.g., #N0672).
#9 (08/03/2026, 10:27 AM): Minimal Prompt (10 specific signatures for Count Philipp von Hanau):
Result: “Fact-check aborted: Signatures #N0655, #N0657 could not be read and verified.”
#10-#12 (08/03/2026, 10:33 AM - 10:51 AM): Prompt #9 succeeded on retry without changes. Required 16 separate micro-attempts to finish checking list “Adel 3”.
#16-#18 (08/04/2026, 07:49 AM - 07:58 AM): Aborts shift randomly across different signature sets (#N0009-#N0011, then #N0008, #N0022, #N0025).
#19 (08/04/2026, 08:33 AM): Removing the custom termination rule prevents hard aborts, but causes silently incomplete outputs (hallucination by omission).
#20 (08/04/2026, 09:01 AM) [A/B Test - File Splitting]: Large source split into 4 parts (NDF0001-0690.txt).
Result: “Fact-check aborted: Signatures (#N0038, #N0040, #N0043, #N0066) from source NDF0001-0690.txt could not be read and verified.”
#21-#22 (08/04/2026, 09:20 AM - 09:28 AM): Dual-source fallback query tested (“Check NDF0001-0690.txt, fallback to Niederdorfelden_N0001-N2769.txt”).
Result: System claims signatures could not be read from EITHER file.
Part 3: Deep-Dive Isolation & Chat Configuration Integration
#61 (08/04/2026, 11:42 AM): Implemented System Rule 11 (Context Limit Handling):
“Assume sources are complete. If a signature is missing from current context, treat as system truncation and output warning: ‘Scan incomplete: Signatures from source [Y] could not be read out and verified.’”
#62 (08/04/2026): Executed Prompt on N0001-N0022 (“von Dorfelden” family).
Output:
- Reinhard von Dorfelden, Lord: #N0008, #N0009, #N0010, #N0011
“Scan incomplete: Signature numbers (#N0003, #N0012, #N0013, #N0019, #N0020) from Niederdorfelden_N0001-N2769.txt could not be read and verified.”
#64 (08/04/2026, 04:06 PM) [A/B Test - Google Docs Conversion]: Source converted to Google Doc.
Output:
- Reinhard von Dorfelden, Layman: #N0001
- Heilmann von Dorfelden, Knight: #N0015
- Opkinus von Dorfelden, Knight: #N0019
“Scan incomplete: Signature numbers (#N0002, #N0009, #N0013, #N0020) from Niederdorfelden_N0001-N2769.txt could not be read and verified.”
Conclusion: File format change does not prevent context dropping; missing signature sets shift arbitrarily.
Part 4: Python / Code Execution Mode Failure Analysis
Prompt (08/04/2026, >18:00 PM):
“Use ONLY Niederdorfelden_N0001-N2769.txt (N0001-N0022). Do not search via standard text search; use Python code / Regex to search line by line.”
Result: Returned only 1 out of 3 known individuals with NO warning output.
Extracted Thought Chain Log (Key Steps):
- “Exploring Available Resources → Code was executed”
- “Clarifying Source Availability: I’ve realized the sources aren’t accessible as files, instead, they’re within the prompt’s snippets, not the file system.”
- “Exploring System Files: I am now investigating different directories… finding no initial results.”
- “Addressing the Dilemma: I’m now contemplating how to handle a request to search a non-existent file using code, exploring solutions like creating a mock file or writing relevant text to a temporary file…”
- “Discovering the Filesystem: I’ve determined the filesystem is empty; all information must come from provided snippets.”
- Result: System falls back to incomplete snippet context and silently drops missing entries.
Part 5: Cross-Source & Cross-Notebook Escalation (Test Case 2: Rendel)
#30 (08/06/2026, 12:00 PM): Notebook “Fact-Check”, Source “t1”.
Output: “Fact-check incomplete: Signature numbers (#R0168) from source t1 could not be read and verified.”
#31 (08/06/2026, 12:12 PM): Notebook “Fact-Check”, Source “Rendel_R0001-R0900.txt”.
Output: “Fact-check incomplete: Signature numbers (#R0048, #R0111, #R0433, #R0735, #R0748, #R0762, #R0828, #R0855, #R0869) from source Rendel_R0001-R0900.txt could not be read and verified.”
Control Test: Same source tested inside dedicated Notebook “Rendel” → LOP runs cleanly initially.
#32 (08/06/2026, 01:35 PM): Second run in “Fact-Check”: Aborts on #R0239.
#33 (08/06/2026, 01:44 PM): Third run in “Fact-Check”: Aborts on #R0033, #R0125.
#34 (08/06/2026, 01:58 PM): Testing discontinued. Identical degradation pattern confirmed across independent dataset.
Conclusion & System Diagnostics
The error is NOT caused by user prompts, document formatting, or corrupted source text. It represents a backend state/retrieval degradation issue:
- KV-Cache / Vector Index State Corruption: Sequential read operations cause persistent state degradation on the session/worker level.
- Dynamic Context Truncation: The backend silently drops token blocks when context budget thresholds are hit, leading to false claims of “missing signatures”.
- Sandbox Isolation: Python execution environments lack physical access to notebook source files, breaking regex-based parsing workflows.