The existing a2a-redis implementations (both RedisStreamsEventQueue and RedisPubSubEventQueue) serialize Pydantic models to JSON correctly but only return raw dictionaries during deserialization. The A2A framework's EventConsumer expects actual Pydantic model instances, not dictionaries.
This causes the A2A framework's EventConsumer to hang indefinitely during event processing. Upon dequeue, only raw Python dictionaries are returned instead of reconstructing the original Pydantic model instances. The A2A framework's EventConsumer.consume_all() method relies on isinstance() checks and attribute access on Pydantic models to determine when to stop consuming events: