Skip to content

5 bugs found during code review: crash, ignored env var, missing state field, hardcoded model, typo #259

@sanjibani

Description

@sanjibani

Found these during a thorough code review. All are small, isolated bugs.

Bug 1: process_pdf_docs crashes on corrupted PDF (UnboundLocalError)

File: backend/src/tools/process_pdf.py:30-35

When PdfStreamError is caught, the except block logs the error but doesn't return. Execution falls through to line 35 which iterates over documents — but documents was never assigned.

try:
    documents = loader.load_and_split(text_splitter=text_splitter)
except PdfStreamError:
    logging.error(f"Error processing PDF: {file_path} is corrupted or incomplete.")
    # ← no return here!

for doc in documents:  # ← UnboundLocalError

Fix: Add return [] in the except block.

Bug 2: FAISS_DB_PATH env var is defined but never read

File: backend/src/vectorstores/faiss.py:199-203

.env.example defines FAISS_DB_PATH=./.faissdb/faiss_index, but get_db_path() always computes a hardcoded relative path (../../../faiss_db), completely ignoring the env var.

Fix: Check os.getenv("FAISS_DB_PATH") first, fall back to the computed path.

Bug 3: context_list missing from AgentState TypedDict

File: backend/src/agents/retriever_typing.py

The ToolNode.get_node() method in retriever_rag.py:61 returns {"context_list": doc_texts}, but AgentState has no context_list field. The data is silently dropped by LangGraph.

Fix: Add context_list: Annotated[list[str], add_messages] to AgentState.

Bug 4: Hardcoded gemini-2.0-flash in helpers endpoint

File: backend/src/api/routers/helpers.py:14

The suggested questions endpoint hardcodes model = "gemini-2.0-flash", ignoring the GOOGLE_GEMINI env var that the main conversations endpoint respects.

Fix: Map GOOGLE_GEMINI env var to model string, consistent with conversations.py.

Bug 5: Typo in main RAG prompt

File: backend/src/prompts/prompt_templates.py:15

"Sorry its not avaiable in my knowledge base." — two issues: missing comma/apostrophe and "avaiable" should be "available".

Fix: "Sorry, it's not available in my knowledge base."

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions