We have two projects the staging and prod project. In the staging project the sign in link is sent as usual. But in the production project we get 200 response as can be seen in devtools, but no email is sent.
The Payload example
{
"requestType": "EMAIL_SIGNIN",
"email": "[email protected]",
"clientType": "CLIENT_TYPE_WEB",
"continueUrl": "https://example.com/onboarding?actionId=onboarding",
"dynamicLinkDomain": "link.example.com",
"canHandleCodeInApp": true
}
The 200 response
{
"kind": "identitytoolkit#GetOobConfirmationCodeResponse",
"email": "[email protected]"
}
So somehow that end is working but no email is arriving. This is the same email address as in Staging so it is not an email address problem
Troubleshooting we have done
1. Making sure the domain is whitelisted.
We have even removed it (temporarily) to reverse test and get a 400 response, and
adding it back to a 200 response
2. The dynamic link is well in place
3. We have a custom domain e.g `auth.example.com` for google signin redirect.
We have even changed that to the default `example.firebaseapp.com` auth domain and
still nothing
4. We have checked the spam folders and nothing
Basically we have been working in the staging environment for a while now and everything has been smooth, but now we are preparing to go live and this delivery issue is a problem in the production environment
What could be the issue here.
After a while I undid the custom domain in templates, it was example.com and my website hosted elsewhere is also the same (example.com). This was somehow causing a conflict.
Removed that, and went back to default firebaseapp.com sender, sent email and went through.
So i created a subdomain for firebase for sending emails e.g mail.example.com and added that to the template custom domain.
Everything works now