MEDIUM SEVERITYCONFIRMED
add_conditional_edges() silently drops routing when no path_map and node is unregistered
Package
langgraph
Version
1.1.3
Verified
2026-03-28
Description
When `add_conditional_edges()` is called without a `path_map`, returning an unregistered node name from the router causes LangGraph to silently drop the routing. No exception is raised — the graph logs a WARNING and continues, returning the current state unchanged. The intended downstream node never executes. With `path_map` provided, the correct behavior (KeyError) occurs immediately.
Reproduction
from langgraph.graph import StateGraph, END
visited = []
builder = StateGraph(dict)
builder.add_node('validate', lambda s: s)
builder.add_node('process', lambda s: (visited.append(True), s)[1])
builder.set_entry_point('validate')
builder.add_conditional_edges('validate', lambda s: 'nod_e') # typo, not registered
builder.add_edge('process', END)
result = builder.compile().invoke({'amount': 100})
# Expected: exception. Actual: invoke() returns {'amount': 100}, 'process' never ran