Fetching from the wire…
Public story · 2026-09-01 · high
A failed re-ingest could erase chunks that were still searchable in the old version.
Why now: Agno released this correctness fix on 2026-09-01, targeting a failure mode that only surfaces after you've trusted a completed status for a while.
Agno 3.0.5 makes failed embeds raise an error instead of returning an empty vector that ingestion recorded as complete. Knowledge bases that looked whole were sometimes missing chunks, with nothing in the logs to show it.
The release adds a new ContentStatus.PARTIAL for files where some chunks embedded and others didn't. Before 3.0.5, that mixed outcome still came back as success. skip_if_exists=True is the flag that skips re-processing content already in the index. It no longer skips content marked failed or partial, per the release notes on GitHub.
Agno 3.0.5 also fixes a second bug, worse in a specific way. Re-ingesting a document to update it could trigger a failed re-embed, and the old code replaced existing chunks with that failed, empty result anyway. That left a document with zero searchable chunks where a working one used to be. A new embed_before_replace guard embeds the replacement first and only swaps it in if that succeeds.
Each link below shares sources, entities, or timing with this story.
Released September 1, content that previously showed completed may now show failed or partial, because those ingests were always incomplete (GitHub). Embedders raise EmbeddingError instead of returning an empty vector, a new ContentStatus.PARTIAL covers files where some chunks...
The release also adds a command that migrates Python projects off the old anthropic 0.x SDK and stops WebFetch from serving stale content all session.
The open-source project replaces vector search with ls and find commands, and its LoCoMo scores go from 24-57% to 80-83% accuracy.
The open-source tool now sits at 98.9k GitHub stars and pairs a skill with a proxy that compresses code, logs and JSON before they hit the model.
Grep and Glob had the same gap, and the release also blocks project settings from logging raw API request bodies.
The mismatch let a faked tool name slip past every human approval, allow-list, and audit log built to stop it.
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.