# DynamoDB now saves records with booleans

> Agno's DynamoDB storage now writes booleans as native BOOL values, so sessions, memories, traces and spans with a boolean field save without a ValidationException.

- Published: 2026-09-16
- Author: Tai An
- Categories: Changelog
- Canonical: https://www.agno.com/articles/dynamodb-now-saves-records-with-booleans
- Markdown: https://www.agno.com/articles/dynamodb-now-saves-records-with-booleans.md

Agno's DynamoDB serializer now writes a Python boolean as `{"BOOL": true}`, matching the other DynamoDB serializers in Agno. It used to check for numbers before booleans. In Python a boolean is also an integer, so the serializer wrote `True` as `{"N": "True"}`. DynamoDB can't read `"True"` as a number, and it rejected the whole item with a `ValidationException`.

Every session, memory, trace and span goes through this serializer, so any of them with a boolean field failed to save. The serializer stores numbers, strings and other values as before.

See the [cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/06_storage/dynamodb/dynamo_for_agent.py), and learn more about [DynamoDB](https://docs.agno.com/database/providers/dynamodb/overview) in the documentation.
