Applied AI
LangGraph async store can miss a numeric key it just wrote
Normalize memory keys at the boundary and read back through the same async path.
November 1, 2026
Agent memory failures are dangerous when they look like ordinary forgetfulness. A LangGraph issue reproduces an async batched store write with a numeric key followed by a miss when reading with the same numeric key. The narrow case is aput(namespace, 42) then aget(namespace, 42). It does not show that string-key stores or all persistence backends fail.
Identify the key contract
Inspect every call site that constructs a store namespace and key. LangGraph’s store guidance presents namespaces and item keys as deliberate identifiers. Define one canonical string representation for user, account or document IDs; do not let one caller pass an integer while another serializes it to text.
Test read-after-write symmetry
In staging, write and read with a string key, numeric key and a key with leading zeros. Compare async batched and direct store paths on the exact installed version. Verify the returned item ID, namespace and value, not merely that the write call completed. Keep customer identifiers out of test logs.
Contain missing-memory behavior
If the issue reproduces, normalize before both aput and aget and add a boundary test. If existing records were stored under mixed key forms, plan a careful read and migration strategy so a new normalization rule does not orphan them. Log a missing-memory signal separately from an empty but valid result.
Adovo’s view
Memory is an identity system before it is an AI feature. If two paths disagree on the key, a fluent response can conceal a broken retrieval contract. Make identity normalization explicit and observable.
