Same CrewAI Endpoint Returns Incorrect Output When Called from AWS Servers / Product UI

Same CrewAI Endpoint Returns Incorrect Output When Called from AWS / Product UI — Works Fine from Postman

We’re running a sequential CrewAI pipeline (7 tasks, 2 agents, TXTSearchTool for RAG over 2 text files, Claude via langchain_anthropic) in production. Each run builds a fresh Crew, Agents, and Tools with unique collection_names. Crew is set to memory=False, cache=False, and we flush all caches before and after every run.

The issue:

Hitting our endpoint from Postman or VS Code → correct output every time. Same endpoint, same payload from our Product UI or AWS servers (US and Mumbai) → output is for a completely different business, or very generic with no business-specific content from the RAG tool.

Example: Queried for “K Aesthetics” (aesthetics company), got back content for “Johnson Law Firm” — a business nobody queried during the entire test window.

What we’ve ruled out:

  • Payload is identical (verified)
  • No parallel processes running
  • Model and deployment work correctly (Postman proves this)

Questions for the community / CrewAI team:

  1. Does TXTSearchTool persist ChromaDB to disk by default? Could a stale store be serving old embeddings?
  2. Is TXTSearchTool with a specific collection_name guaranteed to only retrieve from that collection, or can it fall back to a broader store?
  3. Are there any module-level singletons or shared state in CrewAI that could hold data from a previous run in the same Python process?
  4. Has anyone seen CrewAI behave differently based on where the request originates from?

Environment:
Python 3.11+,
Claude Sonnet (langchain_anthropic),
TXTSearchTool,
OpenAI text-embedding-3-small,
Process: sequential