Skip to main content
Debugging LangGraph applications requires understanding graph execution, state transitions, and node behavior. This guide covers essential debugging techniques.

Visualization

Visualize your graph structure:
Output:

Generate Mermaid Diagram

Create visual diagrams:

Use LangGraph Studio

For interactive visualization:
LangGraph Studio provides:
  • Interactive graph visualization
  • Step-by-step execution
  • State inspection
  • Breakpoints

Execution Tracing

Debug Mode

Enable debug mode for detailed logging:

Stream Modes

Use different streaming modes to observe execution:

Values Mode

Updates Mode

Tasks Mode

Messages Mode

State Inspection

Get Current State

Inspect State History

Check Pending Tasks

LangSmith Tracing

Integrate with LangSmith for comprehensive debugging:
LangSmith provides:
  • Full execution traces
  • LLM call inspection
  • Latency analysis
  • Error tracking
  • Cost monitoring

Common Issues

State Not Updating

Debug state update issues:

Infinite Loops

Detect and prevent infinite loops:

Missing Edges

Verify graph connectivity:

Conditional Edge Issues

Debug routing logic:

Error Handling

Catch and Log Errors

Retry Failed Nodes

Use retry policies:

Global Error Handler

Performance Debugging

Measure Node Execution Time

Profile Memory Usage

Analyze Bottlenecks

Testing

Unit Test Nodes

Integration Test Graphs

Mock External Services

Best Practices

  • Use LangSmith: Essential for production debugging
  • Enable debug mode: During development for detailed logs
  • Visualize graphs: Understand structure before debugging behavior
  • Test nodes independently: Isolate issues to specific nodes
  • Check state history: Understand state transitions
  • Add logging: Strategic logging in complex nodes
  • Use breakpoints: In LangGraph Studio or with interrupt()
  • Monitor performance: Track execution time and memory
  • Handle errors gracefully: Don’t let exceptions crash the graph
  • Write tests: Catch issues before production

Next Steps