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:
- Does TXTSearchTool persist ChromaDB to disk by default? Could a stale store be serving old embeddings?
- Is TXTSearchTool with a specific collection_name guaranteed to only retrieve from that collection, or can it fall back to a broader store?
- Are there any module-level singletons or shared state in CrewAI that could hold data from a previous run in the same Python process?
- 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