checkpointe-postgres v2.0.23 has error in any exists thread #814

Closed
opened 2026-02-20 17:41:54 -05:00 by yindo · 6 comments
Owner

Originally created by @hyacinthus on GitHub (Jul 17, 2025).

Checked other resources

  • This is a bug, not a usage question. For questions, please use the LangChain Forum (https://forum.langchain.com/).
  • I added a clear and detailed title that summarizes the issue.
  • I read what a minimal reproducible example is (https://stackoverflow.com/help/minimal-reproducible-example).
  • I included a self-contained, minimal example that demonstrates the issue INCLUDING all the relevant imports. The code run AS IS to reproduce the issue.

Example Code

when continue any exists threads

Error Message and Stack Trace (if applicable)

'NoneType' object is not a mapping\nTraceback (most recent call last):\n  File \"/app/intentkit/core/engine.py\", line 564, in stream_agent\n    async for chunk in executor.astream({\"messages\": messages}, stream_config):\n  File \"/app/.venv/lib/python3.12/site-packages/langgraph/pregel/__init__.py\", line 2710, in astream\n    async with AsyncPregelLoop(\n               ^^^^^^^^^^^^^^^^\n  File \"/app/.venv/lib/python3.12/site-packages/langgraph/pregel/loop.py\", line 1177, in __aenter__\n    saved = await self.checkpointer.aget_tuple(self.checkpoint_config)\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/app/.venv/lib/python3.12/site-packages/langgraph/checkpoint/postgres/aio.py\", line 217, in aget_tuple\n    return await self._load_checkpoint_tuple(value)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/app/.venv/lib/python3.12/site-packages/langgraph/checkpoint/postgres/aio.py\", line 413, in _load_checkpoint_tuple\n    \"channel_values\": {\n                      ^\nTypeError: 'NoneType' object is not a mapping\n"

Description

In the new thread, there are no errors, but if you continue any previous version of the thread, this error will occur.

System Info

System Information

OS: Linux
OS Version: #1 SMP PREEMPT_DYNAMIC Tue Apr 8 13:14:54 UTC 2025
Python Version: 3.12.11 (main, Jul 1 2025, 02:44:10) [GCC 12.2.0]

Package Information

langchain_core: 0.3.69
langchain: 0.3.26
langchain_community: 0.3.27
langsmith: 0.4.6
langchain_anthropic: 0.3.17
langchain_mcp_adapters: 0.1.7
langchain_openai: 0.3.28
langchain_postgres: 0.0.15
langchain_text_splitters: 0.3.8
langchain_xai: 0.2.4
langgraph_sdk: 0.1.73

Optional packages not installed

langserve

Other Dependencies

aiohttp<4,>=3.9.1: Installed. No version info available.
aiohttp<4.0.0,>=3.8.3: Installed. No version info available.
anthropic<1,>=0.57.0: Installed. No version info available.
async-timeout<5.0.0,>=4.0.0;: Installed. No version info available.
asyncpg>=0.30.0: Installed. No version info available.
dataclasses-json<0.7,>=0.5.7: Installed. No version info available.
httpx: 0.28.1
httpx-sse<1.0.0,>=0.4.0: Installed. No version info available.
httpx>=0.25.2: Installed. No version info available.
jsonpatch<2.0,>=1.33: Installed. No version info available.
langchain-anthropic;: Installed. No version info available.
langchain-aws;: Installed. No version info available.
langchain-azure-ai;: Installed. No version info available.
langchain-cohere;: Installed. No version info available.
langchain-community;: Installed. No version info available.
langchain-core<0.4,>=0.3.36: Installed. No version info available.
langchain-core<0.4.0,>=0.2.13: Installed. No version info available.
langchain-core<1.0.0,>=0.3.51: Installed. No version info available.
langchain-core<1.0.0,>=0.3.62: Installed. No version info available.
langchain-core<1.0.0,>=0.3.66: Installed. No version info available.
langchain-core<1.0.0,>=0.3.68: Installed. No version info available.
langchain-deepseek;: Installed. No version info available.
langchain-fireworks;: Installed. No version info available.
langchain-google-genai;: Installed. No version info available.
langchain-google-vertexai;: Installed. No version info available.
langchain-groq;: Installed. No version info available.
langchain-huggingface;: Installed. No version info available.
langchain-mistralai;: Installed. No version info available.
langchain-ollama;: Installed. No version info available.
langchain-openai;: Installed. No version info available.
langchain-openai<0.4,>=0.3.18: Installed. No version info available.
langchain-perplexity;: Installed. No version info available.
langchain-text-splitters<1.0.0,>=0.3.8: Installed. No version info available.
langchain-together;: Installed. No version info available.
langchain-xai;: Installed. No version info available.
langchain<1.0.0,>=0.3.26: Installed. No version info available.
langsmith-pyo3: Installed. No version info available.
langsmith>=0.1.125: Installed. No version info available.
langsmith>=0.1.17: Installed. No version info available.
langsmith>=0.3.45: Installed. No version info available.
mcp>=1.9.2: Installed. No version info available.
numpy<3,>=1.21: Installed. No version info available.
numpy>=1.26.2;: Installed. No version info available.
numpy>=2.1.0;: Installed. No version info available.
openai-agents: Installed. No version info available.
openai<2.0.0,>=1.86.0: Installed. No version info available.
opentelemetry-api: Installed. No version info available.
opentelemetry-exporter-otlp-proto-http: Installed. No version info available.
opentelemetry-sdk: Installed. No version info available.
orjson: 3.11.0
orjson>=3.10.1: Installed. No version info available.
packaging: 24.2
packaging>=23.2: Installed. No version info available.
pgvector<0.4,>=0.2.5: Installed. No version info available.
psycopg-pool<4,>=3.2.1: Installed. No version info available.
psycopg<4,>=3: Installed. No version info available.
pydantic: 2.10.6
pydantic-settings<3.0.0,>=2.4.0: Installed. No version info available.
pydantic<3.0.0,>=2.7.4: Installed. No version info available.
pydantic>=2.7.4: Installed. No version info available.
pytest: Installed. No version info available.
PyYAML>=5.3: Installed. No version info available.
requests: 2.32.3
requests-toolbelt: 1.0.0
requests<3,>=2: Installed. No version info available.
rich: Installed. No version info available.
SQLAlchemy<3,>=1.4: Installed. No version info available.
sqlalchemy<3,>=2: Installed. No version info available.
tenacity!=8.4.0,<10,>=8.1.0: Installed. No version info available.
tenacity!=8.4.0,<10.0.0,>=8.1.0: Installed. No version info available.
tiktoken<1,>=0.7: Installed. No version info available.
typing-extensions>=4.7: Installed. No version info available.
zstandard: 0.23.0

Originally created by @hyacinthus on GitHub (Jul 17, 2025). ### Checked other resources - [x] This is a bug, not a usage question. For questions, please use the LangChain Forum (https://forum.langchain.com/). - [x] I added a clear and detailed title that summarizes the issue. - [x] I read what a minimal reproducible example is (https://stackoverflow.com/help/minimal-reproducible-example). - [x] I included a self-contained, minimal example that demonstrates the issue INCLUDING all the relevant imports. The code run AS IS to reproduce the issue. ### Example Code ```python when continue any exists threads ``` ### Error Message and Stack Trace (if applicable) ```shell 'NoneType' object is not a mapping\nTraceback (most recent call last):\n File \"/app/intentkit/core/engine.py\", line 564, in stream_agent\n async for chunk in executor.astream({\"messages\": messages}, stream_config):\n File \"/app/.venv/lib/python3.12/site-packages/langgraph/pregel/__init__.py\", line 2710, in astream\n async with AsyncPregelLoop(\n ^^^^^^^^^^^^^^^^\n File \"/app/.venv/lib/python3.12/site-packages/langgraph/pregel/loop.py\", line 1177, in __aenter__\n saved = await self.checkpointer.aget_tuple(self.checkpoint_config)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/.venv/lib/python3.12/site-packages/langgraph/checkpoint/postgres/aio.py\", line 217, in aget_tuple\n return await self._load_checkpoint_tuple(value)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/app/.venv/lib/python3.12/site-packages/langgraph/checkpoint/postgres/aio.py\", line 413, in _load_checkpoint_tuple\n \"channel_values\": {\n ^\nTypeError: 'NoneType' object is not a mapping\n" ``` ### Description In the new thread, there are no errors, but if you continue any previous version of the thread, this error will occur. ### System Info System Information ------------------ > OS: Linux > OS Version: #1 SMP PREEMPT_DYNAMIC Tue Apr 8 13:14:54 UTC 2025 > Python Version: 3.12.11 (main, Jul 1 2025, 02:44:10) [GCC 12.2.0] Package Information ------------------- > langchain_core: 0.3.69 > langchain: 0.3.26 > langchain_community: 0.3.27 > langsmith: 0.4.6 > langchain_anthropic: 0.3.17 > langchain_mcp_adapters: 0.1.7 > langchain_openai: 0.3.28 > langchain_postgres: 0.0.15 > langchain_text_splitters: 0.3.8 > langchain_xai: 0.2.4 > langgraph_sdk: 0.1.73 Optional packages not installed ------------------------------- > langserve Other Dependencies ------------------ > aiohttp<4,>=3.9.1: Installed. No version info available. > aiohttp<4.0.0,>=3.8.3: Installed. No version info available. > anthropic<1,>=0.57.0: Installed. No version info available. > async-timeout<5.0.0,>=4.0.0;: Installed. No version info available. > asyncpg>=0.30.0: Installed. No version info available. > dataclasses-json<0.7,>=0.5.7: Installed. No version info available. > httpx: 0.28.1 > httpx-sse<1.0.0,>=0.4.0: Installed. No version info available. > httpx>=0.25.2: Installed. No version info available. > jsonpatch<2.0,>=1.33: Installed. No version info available. > langchain-anthropic;: Installed. No version info available. > langchain-aws;: Installed. No version info available. > langchain-azure-ai;: Installed. No version info available. > langchain-cohere;: Installed. No version info available. > langchain-community;: Installed. No version info available. > langchain-core<0.4,>=0.3.36: Installed. No version info available. > langchain-core<0.4.0,>=0.2.13: Installed. No version info available. > langchain-core<1.0.0,>=0.3.51: Installed. No version info available. > langchain-core<1.0.0,>=0.3.62: Installed. No version info available. > langchain-core<1.0.0,>=0.3.66: Installed. No version info available. > langchain-core<1.0.0,>=0.3.68: Installed. No version info available. > langchain-deepseek;: Installed. No version info available. > langchain-fireworks;: Installed. No version info available. > langchain-google-genai;: Installed. No version info available. > langchain-google-vertexai;: Installed. No version info available. > langchain-groq;: Installed. No version info available. > langchain-huggingface;: Installed. No version info available. > langchain-mistralai;: Installed. No version info available. > langchain-ollama;: Installed. No version info available. > langchain-openai;: Installed. No version info available. > langchain-openai<0.4,>=0.3.18: Installed. No version info available. > langchain-perplexity;: Installed. No version info available. > langchain-text-splitters<1.0.0,>=0.3.8: Installed. No version info available. > langchain-together;: Installed. No version info available. > langchain-xai;: Installed. No version info available. > langchain<1.0.0,>=0.3.26: Installed. No version info available. > langsmith-pyo3: Installed. No version info available. > langsmith>=0.1.125: Installed. No version info available. > langsmith>=0.1.17: Installed. No version info available. > langsmith>=0.3.45: Installed. No version info available. > mcp>=1.9.2: Installed. No version info available. > numpy<3,>=1.21: Installed. No version info available. > numpy>=1.26.2;: Installed. No version info available. > numpy>=2.1.0;: Installed. No version info available. > openai-agents: Installed. No version info available. > openai<2.0.0,>=1.86.0: Installed. No version info available. > opentelemetry-api: Installed. No version info available. > opentelemetry-exporter-otlp-proto-http: Installed. No version info available. > opentelemetry-sdk: Installed. No version info available. > orjson: 3.11.0 > orjson>=3.10.1: Installed. No version info available. > packaging: 24.2 > packaging>=23.2: Installed. No version info available. > pgvector<0.4,>=0.2.5: Installed. No version info available. > psycopg-pool<4,>=3.2.1: Installed. No version info available. > psycopg<4,>=3: Installed. No version info available. > pydantic: 2.10.6 > pydantic-settings<3.0.0,>=2.4.0: Installed. No version info available. > pydantic<3.0.0,>=2.7.4: Installed. No version info available. > pydantic>=2.7.4: Installed. No version info available. > pytest: Installed. No version info available. > PyYAML>=5.3: Installed. No version info available. > requests: 2.32.3 > requests-toolbelt: 1.0.0 > requests<3,>=2: Installed. No version info available. > rich: Installed. No version info available. > SQLAlchemy<3,>=1.4: Installed. No version info available. > sqlalchemy<3,>=2: Installed. No version info available. > tenacity!=8.4.0,<10,>=8.1.0: Installed. No version info available. > tenacity!=8.4.0,<10.0.0,>=8.1.0: Installed. No version info available. > tiktoken<1,>=0.7: Installed. No version info available. > typing-extensions>=4.7: Installed. No version info available. > zstandard: 0.23.0
yindo added the bugpendingopen-swe-auto labels 2026-02-20 17:41:54 -05:00
yindo closed this issue 2026-02-20 17:41:54 -05:00
Author
Owner

@alberto-agudo commented on GitHub (Jul 17, 2025):

I'm experiencing the same issue when calling checkpointer.list(config=None, filter= {"user_id":user_id}) and basically any other usage of the PostgresSaver checkpointer. This has broken my application. Same message:
'NoneType' object is not a mapping

Reverting back to version 2.0.22 solved it for me.

@alberto-agudo commented on GitHub (Jul 17, 2025): I'm experiencing the same issue when calling `checkpointer.list(config=None, filter= {"user_id":user_id})` and basically any other usage of the PostgresSaver checkpointer. This has broken my application. Same message: `'NoneType' object is not a mapping` Reverting back to version 2.0.22 solved it for me.
Author
Owner

@JiwonDev commented on GitHub (Jul 17, 2025):

I’m encountering the same error. Downgrading to version 2.0.21 resolves the issue.

File "/app/.venv/lib/python3.12/site-packages/langgraph/checkpoint/postgres/aio.py", line 280, in aput
    await cur.execute(
  File "/app/.venv/lib/python3.12/site-packages/psycopg/cursor_async.py", line 93, in execute
    await self._conn.wait(
  File "/app/.venv/lib/python3.12/site-packages/psycopg/connection_async.py", line 439, in wait
    return await waiting.wait_async(gen, self.pgconn.socket, interval=interval)

...

File "/app/.venv/lib/python3.12/site-packages/psycopg/types/json.py", line 149, in dump
    if isinstance((data := dumps(obj)), str):
                           ^^^^^^^^^^
  File "/usr/local/lib/python3.12/json/__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/json/encoder.py", line 200, in encode
    chunks = self.iterencode(o, _one_shot=True)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/json/encoder.py", line 258, in iterencode
    return _iterencode(o, 0)
           ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/json/encoder.py", line 180, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type HumanMessage is not JSON serializable
During task with name 'a1f49e69-3ef1-4023-9bd1-780d3aff455f' and id 'ab9e6d92-6e46-8bfb-2d9f-8f048dce5da8'

The error occurs in langgraph/checkpoint/postgres/aio.py within the aput function, specifically in the part where the checkpoint is being saved:

Original code (2.0.21):

await cur.execute(
    self.UPSERT_CHECKPOINTS_SQL,
    (
        thread_id,
        checkpoint_ns,
        checkpoint["id"],
        checkpoint_id,
        Jsonb(self._dump_checkpoint(copy)),
        self._dump_metadata(get_checkpoint_metadata(config, metadata)),
    ),
)

Modified code(2.0.23):

await cur.execute(
    self.UPSERT_CHECKPOINTS_SQL,
    (
        thread_id,
        checkpoint_ns,
        checkpoint["id"],
        checkpoint_id,
        Jsonb(copy),
        Jsonb(get_checkpoint_metadata(config, metadata)),
    ),
)

The error is triggered in the modified version due to an attempt to serialize a HumanMessage object, which is not JSON serializable.

@JiwonDev commented on GitHub (Jul 17, 2025): I’m encountering the same error. Downgrading to version 2.0.21 resolves the issue. ```python File "/app/.venv/lib/python3.12/site-packages/langgraph/checkpoint/postgres/aio.py", line 280, in aput await cur.execute( File "/app/.venv/lib/python3.12/site-packages/psycopg/cursor_async.py", line 93, in execute await self._conn.wait( File "/app/.venv/lib/python3.12/site-packages/psycopg/connection_async.py", line 439, in wait return await waiting.wait_async(gen, self.pgconn.socket, interval=interval) ... File "/app/.venv/lib/python3.12/site-packages/psycopg/types/json.py", line 149, in dump if isinstance((data := dumps(obj)), str): ^^^^^^^^^^ File "/usr/local/lib/python3.12/json/__init__.py", line 231, in dumps return _default_encoder.encode(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/json/encoder.py", line 200, in encode chunks = self.iterencode(o, _one_shot=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/json/encoder.py", line 258, in iterencode return _iterencode(o, 0) ^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/json/encoder.py", line 180, in default raise TypeError(f'Object of type {o.__class__.__name__} ' TypeError: Object of type HumanMessage is not JSON serializable During task with name 'a1f49e69-3ef1-4023-9bd1-780d3aff455f' and id 'ab9e6d92-6e46-8bfb-2d9f-8f048dce5da8' ``` The error occurs in `langgraph/checkpoint/postgres/aio.py` within the aput function, specifically in the part where the checkpoint is being saved: Original code (2.0.21): ```python await cur.execute( self.UPSERT_CHECKPOINTS_SQL, ( thread_id, checkpoint_ns, checkpoint["id"], checkpoint_id, Jsonb(self._dump_checkpoint(copy)), self._dump_metadata(get_checkpoint_metadata(config, metadata)), ), ) ``` Modified code(2.0.23): ```python await cur.execute( self.UPSERT_CHECKPOINTS_SQL, ( thread_id, checkpoint_ns, checkpoint["id"], checkpoint_id, Jsonb(copy), Jsonb(get_checkpoint_metadata(config, metadata)), ), ) ``` The error is triggered in the modified version due to an attempt to serialize a HumanMessage object, which is not JSON serializable.
Author
Owner

@open-swe[bot] commented on GitHub (Jul 17, 2025):

🤖 Open SWE has been triggered for this issue. Processing...

View run in Open SWE here (this URL will only work for @eyurtsev)

Dev Metadata { "runId": "1f063162-7ee8-67a1-b4c3-e839873fd85b", "threadId": "fac1e127-762d-4550-8284-6f274eb63968" }
@open-swe[bot] commented on GitHub (Jul 17, 2025): 🤖 Open SWE has been triggered for this issue. Processing... View run in Open SWE [here](https://open-swe-web.vercel.app/chat/fac1e127-762d-4550-8284-6f274eb63968) (this URL will only work for @eyurtsev) <details> <summary>Dev Metadata</summary> { "runId": "1f063162-7ee8-67a1-b4c3-e839873fd85b", "threadId": "fac1e127-762d-4550-8284-6f274eb63968" } </details>
Author
Owner

@Fatem-Mq commented on GitHub (Jul 22, 2025):

Same issue here, I comment, so I get an update when the issue is resolved. =D

@Fatem-Mq commented on GitHub (Jul 22, 2025): Same issue here, I comment, so I get an update when the issue is resolved. =D
Author
Owner

@jbar-q2 commented on GitHub (Aug 28, 2025):

This breaks all checkpointing. Will it be fixed?

@jbar-q2 commented on GitHub (Aug 28, 2025): This breaks all checkpointing. Will it be fixed?
Author
Owner

@casparb commented on GitHub (Sep 17, 2025):

Hi @hyacinthus, thanks for flagging this. Fixed in #6162

@casparb commented on GitHub (Sep 17, 2025): Hi @hyacinthus, thanks for flagging this. Fixed in #6162
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langchain-ai/langgraph#814