| name | langchain-common-errors |
| description | Diagnose and fix common LangChain errors and exceptions. Use when this capability is needed. |
| metadata | {"author":"flight505"} |
LangChain Common Errors
Overview
Quick reference for the most frequent LangChain errors with exact error messages, root causes, and copy-paste fixes.
Import Errors
Cannot find module '@langchain/openai'
npm install @langchain/openai
Cannot import name 'ChatOpenAI' from 'langchain' (Python)
from langchain_openai import ChatOpenAI
@langchain/core version mismatch
npm ls @langchain/core
npm install @langchain/core@latest @langchain/openai@latest @langchain/anthropic@latest
Authentication Errors
AuthenticationError: Incorrect API key provided
console.log("Key present:", !!process.env.OPENAI_API_KEY);
console.log("Key prefix:", process.env.OPENAI_API_KEY?.slice(0, 7));
import "dotenv/config";
import { ChatOpenAI } from "@langchain/openai";
Error: OPENAI_API_KEY is not set
process.env.OPENAI_API_KEY = "sk-...";
const model = new ChatOpenAI({
model: "gpt-4o-mini",
apiKey: "sk-...",
});
Chain Errors
Missing value for input variable "topic"
const prompt = ChatPromptTemplate.fromTemplate("Tell me about {topic} in {language}");
console.log(prompt.inputVariables);
await chain.invoke({ topic: "AI", language: "English" });
Expected mapping type as input to ChatPromptTemplate
await chain.invoke("hello");
await chain.invoke({ input: "hello" });
Output Parsing Errors
OutputParserException: Failed to parse
import { z } from "zod";
const schema = z.object({
answer: z.string(),
confidence: z.number().optional(),
});
const structuredModel = model.withStructuredOutput(schema);
ZodError: validation failed
const Schema = z.object({
answer: z.string(),
confidence: z.number().min(0).max(1).default(0.5),
sources: z.array(z.string()).default([]),
});
Agent Errors
AgentExecutor: max iterations reached
const executor = new AgentExecutor({
agent,
tools,
maxIterations: 15,
earlyStoppingMethod: "force",
});
Missing placeholder 'agent_scratchpad'
const prompt = ChatPromptTemplate.fromMessages([
["system", "You are helpful."],
["human", "{input}"],
new MessagesPlaceholder("agent_scratchpad"),
]);
Rate Limiting
429 Too Many Requests / RateLimitError
const model = new ChatOpenAI({
model: "gpt-4o-mini",
maxRetries: 5,
});
const results = await chain.batch(inputs, { maxConcurrency: 5 });
Memory/History Errors
KeyError: 'chat_history'
const prompt = ChatPromptTemplate.fromMessages([
new MessagesPlaceholder("chat_history"),
["human", "{input}"],
]);
await chain.invoke({
input: "hello",
chat_history: [],
});
Debugging Toolkit
Enable Debug Logging
import { setVerbose } from "@langchain/core";
setVerbose(true);
Enable LangSmith Tracing
LANGSMITH_TRACING=true
LANGSMITH_API_KEY=lsv2_...
LANGSMITH_PROJECT=my-debug-session
Check Version Compatibility
npm ls @langchain/core 2>&1 | head -20
pip show langchain langchain-core langchain-openai | grep -E "Name|Version"
Quick Diagnostic Script
import "dotenv/config";
async function diagnose() {
const checks: Record<string, string> = {};
checks["OPENAI_API_KEY"] = process.env.OPENAI_API_KEY ? "set" : "MISSING";
checks["ANTHROPIC_API_KEY"] = process.env.ANTHROPIC_API_KEY ? "set" : "MISSING";
try {
await import("@langchain/core");
checks["@langchain/core"] = "OK";
} catch { checks["@langchain/core"] = "MISSING"; }
try {
const { ChatOpenAI } = await import("@langchain/openai");
const llm = new ChatOpenAI({ model: "gpt-4o-mini" });
await llm.invoke("test");
checks["OpenAI connection"] = "OK";
} catch (e: any) {
checks["OpenAI connection"] = e..(, );
}
.(checks);
}
();
Resources
Next Steps
For complex debugging, use langchain-debug-bundle to collect comprehensive evidence.
Source: flight505/skill-forge — distributed by TomeVault.