As you can see, it is possible for admin and billing contacts to be present, but empty. This happens when there is no assigned contact to those roles.
The end result is eppInfoDomainResponse->getDomainContacts() leading into an exception, as empty handle gets passed to eppContactHandle which triggers an exception in setContactHandle() (Contact handle specified is not valid: ).
Proposed fix: check if $contact->nodeValue has length in eppInfoDomainResponse->getDomainContacts() before creating a eppContactHandle and adding it to list of contacts present.
It is possible to receive empty contact handles for .fi domains on info domain request resulting in an exception in eppContactHandle.
Details:
This is a slightly obfuscated response from the testing environment:
As you can see, it is possible for admin and billing contacts to be present, but empty. This happens when there is no assigned contact to those roles.
The end result is eppInfoDomainResponse->getDomainContacts() leading into an exception, as empty handle gets passed to eppContactHandle which triggers an exception in setContactHandle() (Contact handle specified is not valid: ).
Proposed fix: check if $contact->nodeValue has length in eppInfoDomainResponse->getDomainContacts() before creating a eppContactHandle and adding it to list of contacts present.