# What changed in @langchain/langgraph-sdk

> 19 changes in @langchain/langgraph-sdk 1 from its official release notes, upgrade guides and advisories: 3 breaking, 3 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/@langchain/langgraph-sdk/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @langchain/langgraph-sdk 1

### Breaking changes

- Server closes with 4000 plus a 4xx status, except 4408 and 4429, now end the event stream with an error carrying `status` instead of reconnecting; other 4xxx closes still reconnect. (1.12.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.5)
- Send task paths and node-error-handler task paths now use Python-compatible shapes, changing task metadata and task ids for functional task() calls under those tasks. (1.12.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.4)
- Writes from tasks in one superstep are now applied and replayed in (task_path, task_id, idx) order instead of task-id order, aligning with Python and preventing run-to-run permutations. (1.12.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.4)

### New APIs and options

- The method accepts an optional serialized task path; custom savers must persist it and return pending writes in the new sort order. (1.12.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.4)
- A new export provides comparison for the sort keys used to order pending writes consistently across checkpoint savers. (1.12.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.4)
- A new export provides the sort key used to order pending writes consistently across checkpoint savers. (1.12.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.4)

### Behavior and default changes

- SQLite and Postgres gain a task_path column, while Redis and MongoDB documents gain a task_path field; SQLite and Postgres migrate it automatically on setup(). (1.12.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.4)

### Fixes and other changes

- A command whose send fails no longer leaves a response promise behind to be rejected later as an unhandled rejection. (1.12.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.5)
- The root-namespace messages projection now fills from the root event stream instead of throwing on every event and remaining empty. (1.12.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.5)
- Handles for cut-off messages now settle with an `aborted` error instead of remaining unresolved. (1.12.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.5)
- A replayed completion from an earlier run no longer settles a newly submitted run early, clears `isLoading`, or fires `onCompleted` while the new run is still going. (1.12.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.5)
- A WebSocket thread stream that fails permanently now reaches `ThreadStream.onError`, allowing `useStream` to set `error` and clear `isLoading`, as with SSE. (1.12.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.5)
- Cut-off replies are removed when their run ends and stay removed across refreshes and other tabs; completed replies remain visible during pauses and are replaced when the run resumes. (1.12.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.5)
- The controller skips events produced before the loaded checkpoint, preventing earlier turns from replaying into stream state; scoped views still receive full history. (1.12.5) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.5)
- The first update superstep is sealed so touched DeltaChannels snapshot on the update checkpoint, preventing finished sibling writes and update writes from replaying in the wrong order. (1.12.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.4)
- Resumed superstep delta writes replay in live order, interleaving with loaded writes by task path; loaded writes are no longer stored twice. (1.12.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.4)
- Detection now accepts both the old and new Send-task path shapes. (1.12.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.4)
- Update tasks carry (__interrupt__, i) task paths so multiple updates in one superstep writing the same DeltaChannel replay in the order given. (1.12.4) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.4)
- Client construction now copies defaultHeaders instead of writing x-api-key into the caller's object, preventing clients from sharing headers and sending another client's API key. (1.12.3) — [release notes](https://github.com/langchain-ai/langgraphjs/releases/tag/%40langchain/langgraph-sdk%401.12.3)
