Symptom
Device logs show repeated SEVERE Error parsing recipient element — Bad state: ownerName is required for SINPE_MOVIL_CRC; affected recipients never appear in the recipients list.
Diagnosis
Mobile requires ownerName for SINPE Móvil (lib/features/recipients/application/dtos/recipient_details_dto.dart:430-443, same for the SINPE IBAN variants), but the API's schema has RecipientSinpeMovil.ownerName String? — nullable by design (populated by a Ridivi lookup that can fail or be empty on older records). The recipients gateway's per-element try/catch correctly limits the damage to dropping those recipients.
Fix
Make ownerName optional in the mobile DTO/model for SINPE Móvil and SINPE IBAN types; display fallback chain ownerName → label → phone number / IBAN. Note: the server derives a pay order's beneficiaryName from the same field, so the pay success screen needs the same fallback (tracked in the pay success issue).
Symptom
Device logs show repeated
SEVERE Error parsing recipient element — Bad state: ownerName is required for SINPE_MOVIL_CRC; affected recipients never appear in the recipients list.Diagnosis
Mobile requires
ownerNamefor SINPE Móvil (lib/features/recipients/application/dtos/recipient_details_dto.dart:430-443, same for the SINPE IBAN variants), but the API's schema hasRecipientSinpeMovil.ownerName String?— nullable by design (populated by a Ridivi lookup that can fail or be empty on older records). The recipients gateway's per-element try/catch correctly limits the damage to dropping those recipients.Fix
Make
ownerNameoptional in the mobile DTO/model for SINPE Móvil and SINPE IBAN types; display fallback chainownerName → label → phone number / IBAN. Note: the server derives a pay order'sbeneficiaryNamefrom the same field, so the pay success screen needs the same fallback (tracked in the pay success issue).