Certain OpenID providers, for example Steam, will not provide any attributes, so using $this->openid->getAttributes() will return an empty array, causing the response validation to fail (missing required parameter "raw").
I suggest using $this->openid->data or $_GET for raw data instead.
This will probably mean that the responseMap will change from (for example):
'info.email' => 'contact/email'
To:
'info.email' => 'openid_ext1_value_contact_email'
etc.