The player works correctly in a local development environment using parent=localhost.
However, when deploying to a non-local HTTPS environment, the player fails with: embed-error.html?errorCode=FailedAttributeCheck. The parent parameter is dynamically set using window.location.hostname.
It correctly resolves to the current domain (no protocol, no path, no port).
The site:
Is served over HTTPS
Has a valid SSL certificate
Passes the correct hostname as parent
From the documentation, it is clear that the parent parameter is required. However, it is not explicitly stated whether domains must also be pre-registered or whitelisted in the Twitch Developer Console.
Could you please clarify:
Is explicit domain whitelisting required for the embedded player to function?
If so, where exactly should this be configured in the Developer Console and what?
Can the embed function solely by correctly passing the parent parameter without any additional domain registration?
Are there additional validation rules (e.g. DNS validation, production-only restrictions, subdomain limitations, iframe nesting constraints)?
At the moment, everything appears correct from the integration side, but the embed fails outside of localhost.
No domain whitelisting or pre-registration in the Developer Console is required. The embed works solely by passing the parent parameter correctly.
However, there are additional validation rules — specifically iframe nesting constraints, which are some of the most common causes of FailedAttributeCheck in production.
When the Twitch embed is loaded inside a nested iframe (i.e., your page is itself inside an iframe, or the embed sits within a wrapper iframe), every ancestor domain in the chain must be passed as a separate parent parameter:
If any ancestor is missing, you get exactly FailedAttributeCheck. This is a very common reason for the embed to work on localhost but break in production — production environments often introduce an extra iframe layer via a CMS, widget framework, CDN preview, or reverse proxy panel that you don’t have locally.
To confirm, open DevTools on your production page and inspect the Elements panel. Look for any <iframe> elements wrapping the Twitch player. If you find one, add that domain as an additional parent parameter.
Other things worth checking
Confirm window.location.hostname in production matches what you expect (e.g. www.example.com vs example.com)
If you’re accessing the site by IP address rather than a hostname, the parent parameter won’t work
To answer your questions directly
#
Question
Answer
1
Is explicit domain whitelisting required?
No
2
Where should this be configured?
N/A — no console configuration needed
3
Can the embed function solely by passing parent?
Yes
4
Are there additional validation rules?
Yes — iframe nesting constraints exist. Every ancestor domain in a nested iframe chain must be listed as a separate parent parameter
For reference here as well, depending on if using a site builder one of the domains/parent in the stack of iFrames might change each time you save the site. Which can make it interesting to build the parent stack. (Depending which one will detemine the solve). (But the use of localhost when testing/building OP’s site suggests that a site builder and thus an iFrame stack isn’t/shouldn’t be present, but might be testing before copy/pasting to said builder, which then invalidates the test as the test environment doesn’t match production)
I suspect the problem given the exmaple domain here contains betting your site is inviolation of embed related or developer agreement rules and is blocked. (not that I can tell you one way of the other)
But again need the actual webpage/domain to investigate for sure (to check for faults in your integration code), but if that page is also geoblocked then thats the fault/telling to the point of being blocked by Twitch itself.
The use of any Twitch embeddable experience must comply with the requirements below and the Twitch Developer Services Agreement. Twitch may revoke embed usage for domains that are not in compliance. Twitch reserves the right to revoke your ability to use our embeddable experiences, for any reason, at any time.
If you prefer to not share your domain on this post, please email developers@twitch.tv with your domain and the error received, and we can investigate further. Thank you.
Feel free to DM me directly if you want help working through this — happy to work with you to resolve the issue at hand.
I’d also recommend joining the TwitchDev Discord (TwitchDev). You’ll generally get faster and more collaborative responses there. These forums have an off-putting culture, and that unfortunately puts a lot of people off. Discord tends to be a more approachable space for this kind of back-and-forth troubleshooting.
That said, definitely still email developers@twitch.tv as jbulava suggested — if this is a server-side domain block, that’s the only way to get a definitive answer and potentially resolve it.