LlamaIndex users keep filing bugs
17 posts from 12 people14d activeSteady, +3 this week
Posts per day
The posts behind it
[Bug]: A multi-parameter fan-in step reached through a `@catch_error` handler is rejected by validation, though the workflow runs correctly
### Bug Description A step may take several event parameters, one event of each type: `async def join(self, first: LeftDone, second: RightDone)`. If such a step can only be reached through a `@catch_error` handler, `Workflow.run()` refuses the workflow. Validation raises The...
[Bug]: A typed state that subclasses `DictState` comes back as a plain `DictState` from `ctx.to_dict()` / `Context.from_dict`, and its declared fields are lost
### Bug Description A workflow's typed state may subclass `DictState`. This keeps `DictState`'s dynamic keys and adds declared fields. Step annotations accept such a class: `infer_state_type` skips only `DictState` itself, so `Context[Session]` makes `Session` the run's state...
[Bug]: SQLAlchemyChatStore.delete_message treats positional index as database primary key
### Bug Description In `llama-index-core`, `SQLAlchemyChatStore.delete_message(key, idx)` treats `idx` as the table's database autoincrement primary key (`table.c.id == idx`) rather than the 0-based positional index of the message in the conversation history. In `BaseChatStore`...
[Bug]: Boundary defect in _marshal_llm_to_json on citation brackets & recursive clobbering in SelectionOutputParser._filter_dict
### Bug Description Two related defects were identified in `llama-index-core` output parsers during automated agent assurance testing: 1. **`_marshal_llm_to_json` Boundary Defect (`llama-index-core/llama_index/core/output_parsers/utils.py` L29-36)**: The extraction logic chooses...
[Bug]: A second `ctx.wait_for_event` of the same event type overwrites the first one's result: two sequential waits answered "A" and "B" both return "B"
### Bug Description `ctx.wait_for_event` resumes a step by re-running it, and an earlier wait in the step returns the event stored on its waiter. That stored event can be replaced: `_resolve_waiters` in `workflows/runtime/control_loop/reduce.py` assigns...
`BasicRuntime.restore()` drops the `requirements` of `ctx.wait_for_event` waiters, so one answer resolves every waiter of its type
### Bug Description `BasicRuntime.journal()` and `BasicRuntime.restore()` (added in 2.26.0 as "a journal and restore API to BasicRuntime") rebuild a run's context from its tick journal, so a paused run can be resumed in a fresh workflow, as with `ctx.to_dict()` /...
[Bug]: extract_keywords_given_response keeps empty keywords from trailing commas, so KeywordTableIndex stores an empty-string key
### Bug Description `extract_keywords_given_response` (`llama_index/core/indices/keyword_table/utils.py`) keeps empty strings when the LLM response contains a trailing or repeated comma, e.g. `KEYWORDS: foo, bar,`. The empty string ends up as a keyword, so `KeywordTableIndex`...
[Bug]: OVHcloud.available_models never fetches models (get_available_models_dynamic is undefined, NameError is swallowed)
### Bug Description `OVHcloud.available_models` (documented in the README as "fetched dynamically") never queries the endpoint. It calls `get_available_models_dynamic(self._get_client())`, but that function is not defined or imported anywhere in `llama-index-llms-ovhcloud`. The...
[Bug]: OpenGaussStore ignores the engine and async_engine constructor arguments
### Bug Description `OpenGaussStore.__init__` accepts and documents `engine` and `async_engine` ("SQLAlchemy engine instance to use"), but never stores them. `_connect()` then does `self._engine = self._engine or create_engine(self.connection_string, ...)`, so a caller who...
[Bug]: AG-UI router: RunAgentInput.context is never passed to the LLM
### Bug Description AG-UI clients send app context in `RunAgentInput.context` (a list of `{description, value}`). CopilotKit fills it from `useAgentContext` (formerly `useCopilotReadable`), and it is the main way an app tells the agent what's on screen. The LlamaIndex AG-UI...
[Bug]: RecursiveRetriever incorrectly converts zero scores to 1.0
### Bug Description `RecursiveRetriever` incorrectly converts a valid retrieval score of `0.0` to `1.0` when resolving an `IndexNode` reference. When a parent `IndexNode` has `NodeWithScore.score = 0.0`, the referenced child node is returned with a score of `1.0` instead of...
[Bug]: MarkdownNodeParser misses headings indented by 1–3 spaces and loses their hierarchy
### Bug Description `MarkdownNodeParser` recognizes an ATX heading only when `#` starts in column zero. With 1-3 leading spaces, a valid heading becomes body text, so a document loses the corresponding section boundary and the parent path of later headings. CommonMark §4.2...
[Documentation]: Clarify discovery and contribution route for external tools
### Documentation Issue Description The tools guide’s “Building and contributing your own tools” section directs authors to set package metadata and submit a PR. The community integrations page describes tools as living in the main repository. However, current CONTRIBUTING.md...
[Documentation]: The API documentation cannot be used properly and cannot be scrolled to see more content.
### Documentation Issue Description https://developers.llamaindex.ai/python/framework-api-reference/llms/ The API documentation cannot be used properly and cannot be scrolled to see more content. ### Documentation Link...
ImportError: cannot import name 'GradientBaseModelLLM' from 'llama_index.llms'
I am trying to run a script which uses GradientBaseLLM . Apparently the script was written by someone else couple of years back and I having tough time upgrading. I am importing. from llama_index.llms import GradientBaseLLM I am getting the following error:. ImportError: cannot...
JSONNodeParser emits empty-text nodes for {} and misreports valid scalar JSON as "invalid"
### Bug description `JSONNodeParser.get_nodes_from_node` has two edge behaviors that produce silently wrong output: 1. An empty JSON object becomes a node with empty text. `JSONNodeParser().get_nodes_from_documents([Document(text="{}")])` returns one `TextNode` whose `text` is...
[Bug]: TokenTextSplitter emits chunks one token over chunk_size because splits are budgeted unstripped
...sizes. On 4000 words of ordinary prose with `chunk_overlap=20`: Tracing `_merge` on the failing chunk above shows the budget and the emitted text disagreeing only at the strip: ### Relevant Logs/Tracebacks
Companies and products named
About this problem
Evidence
17 posts from 12 people in 2 places, about 2 a week over 70 days. Mostly on run-llama/llama_index, Stack Overflow [llama-index]. Tools named alongside: Observe, GitHub.
Frustration Frustration 0 of 3· Seen on GitHub issues, Stack Overflow
Summary, model-written
LlamaIndex users experience import errors, silent parser output bugs, unscrollable documentation, and incorrect retrieval score conversions.
How it was grouped
Posts about LlamaIndex that state a pain but match no known issue yet. First post Aug 28, 2026, latest Nov 5, 2026. Corroborated: 3 or more posts from 2 or more people or places. Method
Other LlamaIndex problems
RAG on LlamaIndex returns irrelevant or missing context
5 posts from 5 people on GitHub issues.
LlamaIndex upgrades break working setups
17 posts from 10 people on GitHub issues.
LlamaIndex fails to return valid structured output
5 posts from 5 people on GitHub issues.
Trouble with LlamaIndex returns
Top post: "LegacyOfficeReader returns a Document with text None for a document with no text", one of 3 posts from 3 people on GitHub issues.
LlamaIndex vector search quality is hard to get right
3 posts from 3 people on GitHub issues.
Trouble with LlamaIndex functiontool
Top post: "FunctionTool wraps a returned ToolOutput as a success and drops is_error", one of 3 posts from 3 people on GitHub issues.
Trouble with LlamaIndex documents
Top post: "MoorchehVectorStore sparse-vector path raises NameError (missing imports, undefined 'documents', ImpotError", one of 3 posts from 3 people on GitHub issues.
Trouble with LlamaIndex default
Top post: "max_iterations=0 is silently replaced by the default 20", one of 3 posts from 3 people on GitHub issues.
Experiments on LlamaIndex are hard to reproduce and track
3 posts from 3 people on GitHub issues.
LlamaIndex lock-in makes switching costly
3 posts from 3 people on GitHub issues.
Trouble with LlamaIndex events
Top post: "CBEvent assigns generated uuid to self.id instead of self.id_, so events without an id all share id_=", one of 3 posts from 3 people on GitHub issues.
LlamaIndex integrations break or are missing
2 posts from 2 people on GitHub issues. Unverified.
History