Normalise req.Events to Array.Empty<AlarmHistorianEventDto>() immediately after MessagePack deserialization in HandleWriteAlarmEventsAsync. MessagePack deserializes an absent or explicit-nil array field as null, not Array.Empty, so a peer that sends a null Events array would trigger a NullReferenceException on either .Length dereference (no-writer branch or catch block), leaving the client correlation-id wait hanging with no reply frame. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>