LangGraph Server is an API platform for creating and managing agent-based applications. It provides built-in persistence, a task queue, and supports deploying, configuring, and running assistants (agentic workflows) at scale. This changelog documents all notable updates, features, and fixes to LangGraph Server releases.

v0.2.113

  • Improved thread search pagination by updating response headers with X-Pagination-Total and X-Pagination-Next for better navigation.

v0.2.112

  • Ensured sync logging methods are awaited and added a linter to prevent future occurrences.
  • Fixed an issue where JavaScript tasks were not being populated correctly for JS graphs.

v0.2.111

  • Fixed JS graph streaming failure by starting the heartbeat as soon as the connection opens.

v0.2.110

  • Added interrupts as default values for join operations while preserving stream behavior.

v0.2.109

  • Fixed an issue where config schema was missing when config_type was not set, ensuring more reliable configurations.

v0.2.108

  • Prepared for Langgraph v0.6 compatibility with new context API support and bug fixes.

v0.2.107

  • Implemented caching for authentication processes to enhance performance and efficiency.
  • Optimized database performance by merging count and select queries.

v0.2.106

  • Made log streams resumable, enhancing reliability and improving user experience when reconnecting.

v0.2.105

  • Added a heapdump endpoint to save memory heap information to a file.

v0.2.103

  • Used the correct metadata endpoint to resolve issues with data retrieval.

v0.2.102

  • Captured interrupt events in the wait method to preserve previous behavior from langgraph 0.5.0.
  • Added support for SDK structlog in the JavaScript environment for enhanced logging capabilities.

v0.2.101

  • Corrected the metadata endpoint for self-hosted deployments.

v0.2.99

  • Improved license check by adding an in-memory cache and handling Redis connection errors more effectively.
  • Reloaded assistants to preserve manually created ones while discarding those removed from the configuration file.
  • Reverted changes to ensure the UI namespace for gen UI is a valid JavaScript property name.
  • Ensured that the UI namespace for generated UI is a valid JavaScript property name, improving API compliance.
  • Enhanced error handling to return a 422 status code for unprocessable entity requests.

v0.2.98

  • Added context to langgraph nodes to improve log filtering and trace visibility.

v0.2.97

  • Improved interoperability with the ckpt ingestion worker on the main loop to prevent task scheduling issues.
  • Delayed queue worker startup until after migrations are completed to prevent premature execution.
  • Enhanced thread state error handling by adding specific metadata and improved response codes for better clarity when state updates fail during creation.
  • Exposed the interrupt ID when retrieving the thread state to improve API transparency.

v0.2.96

  • Added a fallback mechanism for configurable header patterns to handle exclude/include settings more effectively.

v0.2.95

  • Avoided setting the future if it is already done to prevent redundant operations.
  • Resolved compatibility errors in CI by switching from typing.TypedDict to typing_extensions.TypedDict for Python versions below 3.12.

v0.2.94

  • Improved performance by omitting pending sends for langgraph versions 0.5 and above.
  • Improved server startup logs to provide clearer warnings when the DD_API_KEY environment variable is set.

v0.2.93

  • Removed the GIN index for run metadata to improve performance.

v0.2.92

  • Enabled copying functionality for blobs and checkpoints, improving data management flexibility.

v0.2.91

  • Reduced writes to the checkpoint_blobs table by inlining small values (null, numeric, str, etc.). This means we don’t need to store extra values for channels that haven’t been updated.

v0.2.90

  • Improve checkpoint writes via node-local background queueing.

v0.2.89

  • Decoupled checkpoint writing from thread/run state by removing foreign keys and updated logger to prevent timeout-related failures.

v0.2.88

  • Removed the foreign key constraint for thread in the run table to simplify database schema.

v0.2.87

  • Added more detailed logs for Redis worker signaling to improve debugging.

v0.2.86

  • Honored tool descriptions in the /mcp endpoint to align with expected functionality.

v0.2.85

  • Added support for the on_disconnect field to runs/wait and included disconnect logs for better debugging.

v0.2.84

  • Removed unnecessary status updates to streamline thread handling and updated version to 0.2.84.

v0.2.83

  • Reduced the default time-to-live for resumable streams to 2 minutes.
  • Enhanced data submission logic to send data to both Beacon and LangSmith instance based on license configuration.
  • Enabled submission of self-hosted data to a Langsmith instance when the endpoint is configured.

v0.2.82

  • Addressed a race condition in background runs by implementing a lock using join, ensuring reliable execution across CTEs.

v0.2.81

  • Optimized run streams by reducing initial wait time to improve responsiveness for older or non-existent runs.

v0.2.80

  • Corrected parameter passing in the logger.ainfo() API call to resolve a TypeError.

v0.2.79

  • Fixed a JsonDecodeError in checkpointing with remote graph by correcting JSON serialization to handle trailing slashes properly.
  • Introduced a configuration flag to disable webhooks globally across all routes.

v0.2.78

  • Added timeout retries to webhook calls to improve reliability.
  • Added HTTP request metrics, including a request count and latency histogram, for enhanced monitoring capabilities.

v0.2.77

  • Added HTTP metrics to improve performance monitoring.
  • Changed the Redis cache delimiter to reduce conflicts with subgraph message names and updated caching behavior.

v0.2.76

  • Updated Redis cache delimiter to prevent conflicts with subgraph messages.

v0.2.74

  • Scheduled webhooks in an isolated loop to ensure thread-safe operations and prevent errors with PYTHONASYNCIODEBUG=1.

v0.2.73

  • Fixed an infinite frame loop issue and removed the dict_parser due to structlog’s unexpected behavior.
  • Throw a 409 error on deadlock occurrence during run cancellations to handle lock conflicts gracefully.

v0.2.72

  • Ensured compatibility with future langgraph versions.
  • Implemented a 409 response status to handle deadlock issues during cancellation.

v0.2.71

  • Improved logging for better clarity and detail regarding log types.

v0.2.70

  • Improved error handling to better distinguish and log TimeoutErrors caused by users from internal run timeouts.

v0.2.69

  • Added sorting and pagination to the crons API and updated schema definitions for improved accuracy.

v0.2.66

  • Fixed a 404 error when creating multiple runs with the same thread_id using on_not_exist="create".

v0.2.65

  • Ensured that only fields from assistant_versions are returned when necessary.
  • Ensured consistent data types for in-memory and PostgreSQL users, improving internal authentication handling.

v0.2.64

  • Added descriptions to version entries for better clarity.

v0.2.62

  • Improved user handling for custom authentication in the JS Studio.
  • Added Prometheus-format run statistics to the metrics endpoint for better monitoring.
  • Added run statistics in Prometheus format to the metrics endpoint.

v0.2.61

  • Set a maximum idle time for Redis connections to prevent unnecessary open connections.

v0.2.60

  • Enhanced error logging to include traceback details for dictionary operations.
  • Added a /metrics endpoint to expose queue worker metrics for monitoring.

v0.2.57

  • Removed CancelledError from retriable exceptions to allow local interrupts while maintaining retriability for workers.
  • Introduced middleware to gracefully shut down the server after completing in-flight requests upon receiving a SIGINT.
  • Reduced metadata stored in checkpoint to only include necessary information.
  • Improved error handling in join runs to return error details when present.

v0.2.56

  • Improved application stability by adding a handler for SIGTERM signals.

v0.2.55

  • Improved the handling of cancellations in the queue entrypoint.
  • Improved cancellation handling in the queue entry point.

v0.2.54

  • Enhanced error message for LuaLock timeout during license validation.
  • Fixed the $contains filter in custom auth by requiring an explicit ::text cast and updated tests accordingly.
  • Ensured project and tenant IDs are formatted as UUIDs for consistency.

v0.2.53

  • Resolved a timing issue to ensure the queue starts only after the graph is registered.
  • Improved performance by setting thread and run status in a single query and enhanced error handling during checkpoint writes.
  • Reduced the default background grace period to 3 minutes.

v0.2.52

  • Now logging expected graphs when one is omitted to improve traceability.
  • Implemented a time-to-live (TTL) feature for resumable streams.
  • Improved query efficiency and consistency by adding a unique index and optimizing row locking.

v0.2.51

  • Handled CancelledError by marking tasks as ready to retry, improving error management in worker processes.
  • Added LG API version and request ID to metadata and logs for better tracking.
  • Added LG API version and request ID to metadata and logs to improve traceability.
  • Improved database performance by creating indexes concurrently.
  • Ensured postgres write is committed only after the Redis running marker is set to prevent race conditions.
  • Enhanced query efficiency and reliability by adding a unique index on thread_id/running, optimizing row locks, and ensuring deterministic run selection.
  • Resolved a race condition by ensuring Postgres updates only occur after the Redis running marker is set.

v0.2.46

  • Introduced a new connection for each operation while preserving transaction characteristics in Threads state update() and bulk() commands.

v0.2.45

  • Enhanced streaming feature by incorporating tracing contexts.
  • Removed an unnecessary query from the Crons.search function.
  • Resolved connection reuse issue when scheduling next run for multiple cron jobs.
  • Removed an unnecessary query in the Crons.search function to improve efficiency.
  • Resolved an issue with scheduling the next cron run by improving connection reuse.

v0.2.44

  • Enhanced the worker logic to exit the pipeline before continuing when the Redis message limit is reached.
  • Introduced a ceiling for Redis message size with an option to skip messages larger than 128 MB for improved performance.
  • Ensured the pipeline always closes properly to prevent resource leaks.

v0.2.43

  • Improved performance by omitting logs in metadata calls and ensuring output schema compliance in value streaming.
  • Ensured the connection is properly closed after use.
  • Aligned output format to strictly adhere to the specified schema.
  • Stopped sending internal logs in metadata requests to improve privacy.

v0.2.42

  • Added timestamps to track the start and end of a request’s run.
  • Added tracer information to the configuration settings.
  • Added support for streaming with tracing contexts.

v0.2.41

  • Added locking mechanism to prevent errors in pipelined executions.