Release v20.69.3
Summary
Forward-ports the release/20.62.x hotfix (94fc9178) that never landed on main. Without it, every release from 20.63.0 on regressed the fix: deserializing a read model with an interface- or abstract-typed [DerivedType] member bounces between the discriminated interface serializer and the concrete class map's default _t convention until the stack overflows and the process dies with SIGSEGV. This took down Studio production today after it upgraded from 20.62.6 to 20.69.2.
Fixed
- Deserializing a read model with a polymorphic (
[DerivedType]) interface- or abstract-typed member no longer overflows the stack and kills the process — the derived-type discriminator convention is registered for concrete class maps as they are created, and an unresolvable discriminator now throws the catchableCannotResolveConcreteDerivedTypeinstead of recursing
🤖 Generated with Claude Code