We could not read a usable email address from the assertion. Ploy looks for an attribute named one of:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddresshttp://schemas.xmlsoap.org/claims/EmailAddressemailaddressemail
If none of those attributes is present, Ploy falls back to the Subject NameID, and only when its format is exactly urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress. The email is trimmed and lowercased, and a blank value is rejected.
Fix: map an email attribute using one of the accepted claim names, or send the email as an email-format NameID.
Okta: expand Show legacy configuration and add a Profile attribute statement with Name
email, Name format Unspecified, and Valueuser.email.Microsoft Entra ID: add the claim
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressmapped touser.mailas an additional claim.