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, and learn more about DynamoDB in the documentation.
Frequently asked questions
The Agno DynamoDB serializer wrote True as {"N": "True"}, and DynamoDB rejected the whole item because it can't read "True" as a number. The serializer now writes booleans as {"BOOL": true}.
Every session, memory, trace and span with a boolean field, since all of them go through the same DynamoDB serializer. Numbers, strings and other values are stored as before.



