# Stuck in a loop with extension review policy

**URL:** <https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850>\
**Category:** Extensions\
**Created:** [October 16, 2019, 9:13am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850 "2019-10-16T09:13:01Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ady88](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/ady88/32/7197_2.png) [@Ady88](https://staging-discuss.dev.twitch.com/u/Ady88)\
**Post date:** [October 16, 2019, 9:13am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/1 "2019-10-16T09:13:01Z")

</div>

The Twitch approval process is designed to make you fail. There is no way out of this approval loop.

DON’T WASTE YOUR TIME

If pull JQuery as requested, you are rejected for pulling JQuery from an external CDN. If you include JQuery as part of the package, you are rejected for not loading JQuery from specified path.

— Rejection 1 —

Policy 2.9  
Your Extension includes HTML files that are not correctly loading the Twitch Extension Helper. Either it is not present, or it is not being loaded first. Please make sure that the Twitch Extension Helper is included from our CDN and is being loaded before all other Javascript within each HTML file of your upload.

\<script src=“[https://code.jquery.com/jquery-3.3.1.min.js](https://code.jquery.com/jquery-3.3.1.min.js)” integrity=“sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=” crossorigin=“anonymous”\>

– Rejection 2 —

Policy 2.8  
Your Extension is attempting to load external files, either from a CDN or other private server, and this will cause your Extension to not function in production. Please make sure that all files that are required by your Extension to function are included in your upload.

You are pulling Jquery from an external CDN for all views.

---

<div class="post-metadata">

**Author:** ![LuckyNoS7evin](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/luckynos7evin/32/5036_2.png) [@LuckyNoS7evin](https://staging-discuss.dev.twitch.com/u/LuckyNoS7evin)\
**Post date:** [October 16, 2019, 9:28am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/2 "2019-10-16T09:28:45Z")

</div>

So you did download jquery-3.3.1.min.js then include that file in the zipped package you uploaded to twitch?

then just reference it using `<script src="js/jquery-3.3.1.min.js"></script>`

I have extensions which include JQuery, React Apps, Vue Apps and much more.

---

<div class="post-metadata">

**Author:** ![LuckyNoS7evin](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/luckynos7evin/32/5036_2.png) [@LuckyNoS7evin](https://staging-discuss.dev.twitch.com/u/LuckyNoS7evin)\
**Post date:** [October 16, 2019, 9:45am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/3 "2019-10-16T09:45:02Z")

</div>

Also 2.9 means you’re not doing this

```
<script rel="preload" src="https://extension-files.twitch.tv/helper/v1/twitch-ext.min.js"></script>

```

On EVERY html page you upload, it has nothing to do with JQuery

---

<div class="post-metadata">

**Author:** ![Ady88](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/ady88/32/7197_2.png) [@Ady88](https://staging-discuss.dev.twitch.com/u/Ady88)\
**Post date:** [October 16, 2019, 10:05am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/4 "2019-10-16T10:05:23Z")

</div>

This is exactly what I did, and I get the following rejection as a result:

Policy 2.9  
Your Extension includes HTML files that are not correctly loading the Twitch Extension Helper. Either it is not present, or it is not being loaded first. Please make sure that the Twitch Extension Helper is included from our CDN and is being loaded before all other Javascript within each HTML file of your upload.

\<script src=“[https://code.jquery.com/jquery-3.3.1.min.js”](https://code.jquery.com/jquery-3.3.1.min.js%E2%80%9D) integrity=“sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=” crossorigin=“anonymous”\>

---

<div class="post-metadata">

**Author:** ![Ady88](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/ady88/32/7197_2.png) [@Ady88](https://staging-discuss.dev.twitch.com/u/Ady88)\
**Post date:** [October 16, 2019, 10:07am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/5 "2019-10-16T10:07:21Z")

</div>

Yes I am including the twitch script in the HTML header.

---

<div class="post-metadata">

**Author:** ![LuckyNoS7evin](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/luckynos7evin/32/5036_2.png) [@LuckyNoS7evin](https://staging-discuss.dev.twitch.com/u/LuckyNoS7evin)\
**Post date:** [October 16, 2019, 10:18am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/6 "2019-10-16T10:18:02Z")

</div>

THIS:

> [@Ady88](#):
>
> Policy 2.9  
> Your Extension includes HTML files that are not correctly loading the Twitch Extension Helper. Either it is not present, or it is not being loaded first. Please make sure that the Twitch Extension Helper is included from our CDN and is being loaded before all other Javascript within each HTML file of your upload.

Has nothing to do with THIS:

> [@Ady88](#):
>
> \<script src=“[https://code.jquery.com/jquery-3.3.1.min.js”](https://code.jquery.com/jquery-3.3.1.min.js%E2%80%9D) integrity=“sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=” crossorigin=“anonymous”\>

THIS is an example of one of my html pages…

```
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900">
  </head>
  <body>
    <noscript>
      <strong>We're sorry but top-ant doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <script rel="preload" src="https://extension-files.twitch.tv/helper/v1/twitch-ext.min.js"></script>
    <script src="jquery.min.js"></script>
  </body>
</html>

```

---

<div class="post-metadata">

**Author:** ![Ady88](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/ady88/32/7197_2.png) [@Ady88](https://staging-discuss.dev.twitch.com/u/Ady88)\
**Post date:** [October 16, 2019, 10:21am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/7 "2019-10-16T10:21:25Z")

</div>

This is the EXACT copy of the text from my rejection:

Policy 2.9  
Your Extension includes HTML files that are not correctly loading the Twitch Extension Helper. Either it is not present, or it is not being loaded first. Please make sure that the Twitch Extension Helper is included from our CDN and is being loaded before all other Javascript within each HTML file of your upload.

\<script src=“[https://code.jquery.com/jquery-3.3.1.min.js](https://code.jquery.com/jquery-3.3.1.min.js)” integrity=“sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=” crossorigin=“anonymous”\>\</script\>

---

<div class="post-metadata">

**Author:** ![BarryCarlyon](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/barrycarlyon/32/253_2.png) [@BarryCarlyon](https://staging-discuss.dev.twitch.com/u/BarryCarlyon)\
**Post date:** [October 16, 2019, 10:24am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/8 "2019-10-16T10:24:49Z")

</div>

Recheck all the HTML files you have included in your Zip file to ensure they have the Twitch Ext helper as noted, and don’t try to call scripts from external CDN’s

Edit: oh I also modified the title to make it more easier for others with a similar issue to find

---

<div class="post-metadata">

**Author:** ![Ady88](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/ady88/32/7197_2.png) [@Ady88](https://staging-discuss.dev.twitch.com/u/Ady88)\
**Post date:** [October 16, 2019, 10:26am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/9 "2019-10-16T10:26:21Z")

</div>

This is my HTML header

```
<head>
  <title>Viewer Page</title>
  <script rel="preload" src="https://extension-files.twitch.tv/helper/v1/twitch-ext.min.js"></script>
  <script src="jquery-3.3.1.min.js"></script>
  <script src="viewer.js" type="text/javascript"></script>
</head>

```

Rejected 2.9

This is my other rejection.

```
<head>
  <title>Viewer Page</title>
  <script rel="preload" src="https://extension-files.twitch.tv/helper/v1/twitch-ext.min.js"></script>
  <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
  <script src="viewer.js" type="text/javascript"></script>
</head>

```

Rejected 2.8

---

<div class="post-metadata">

**Author:** ![BarryCarlyon](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/barrycarlyon/32/253_2.png) [@BarryCarlyon](https://staging-discuss.dev.twitch.com/u/BarryCarlyon)\
**Post date:** [October 16, 2019, 10:27am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/10 "2019-10-16T10:27:55Z")

</div>

Throw your zip file up either here or via the discord and we can help debug.

We are assuming you went to local test, uploaded and resubmitted from there.

---

<div class="post-metadata">

**Author:** ![LuckyNoS7evin](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/luckynos7evin/32/5036_2.png) [@LuckyNoS7evin](https://staging-discuss.dev.twitch.com/u/LuckyNoS7evin)\
**Post date:** [October 16, 2019, 10:30am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/11 "2019-10-16T10:30:14Z")

</div>

Also do you only have one html file? this has to be the same on ALL html files.

We are also assuming you tested this in hosted test before submitting it for review as this would have thrown up errors

---

<div class="post-metadata">

**Author:** ![Ady88](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/ady88/32/7197_2.png) [@Ady88](https://staging-discuss.dev.twitch.com/u/Ady88)\
**Post date:** [October 16, 2019, 10:30am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/12 "2019-10-16T10:30:50Z")

</div>

Yes hosted test works.

---

<div class="post-metadata">

**Author:** ![LuckyNoS7evin](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/luckynos7evin/32/5036_2.png) [@LuckyNoS7evin](https://staging-discuss.dev.twitch.com/u/LuckyNoS7evin)\
**Post date:** [October 16, 2019, 10:34am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/13 "2019-10-16T10:34:29Z")

</div>

feel free to add me to your testing whitelist -\> LuckyNoS7evin

Then I can install and have a look for you.

---

<div class="post-metadata">

**Author:** ![Ady88](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/ady88/32/7197_2.png) [@Ady88](https://staging-discuss.dev.twitch.com/u/Ady88)\
**Post date:** [October 16, 2019, 10:36am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/14 "2019-10-16T10:36:35Z")

</div>

Zip FIle is here:  
[https://twitch-mess.s3-eu-west-1.amazonaws.com/push.zip](https://twitch-mess.s3-eu-west-1.amazonaws.com/push.zip)

---

<div class="post-metadata">

**Author:** ![BarryCarlyon](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/barrycarlyon/32/253_2.png) [@BarryCarlyon](https://staging-discuss.dev.twitch.com/u/BarryCarlyon)\
**Post date:** [October 16, 2019, 10:37am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/15 "2019-10-16T10:37:45Z")

</div>

You have inline styles. Thats not allowed.

Move your CSS to a CSS file and include said file

---

<div class="post-metadata">

**Author:** ![LuckyNoS7evin](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/luckynos7evin/32/5036_2.png) [@LuckyNoS7evin](https://staging-discuss.dev.twitch.com/u/LuckyNoS7evin)\
**Post date:** [October 16, 2019, 10:39am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/16 "2019-10-16T10:39:19Z")

</div>

not just the style tag in the head either there is also style on the svg

---

<div class="post-metadata">

**Author:** ![Ady88](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/ady88/32/7197_2.png) [@Ady88](https://staging-discuss.dev.twitch.com/u/Ady88)\
**Post date:** [October 16, 2019, 10:41am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/17 "2019-10-16T10:41:17Z")

</div>

My problem so far has been jQuery. I can add the styles in a separate CSS and even place the SVG in an external file. But my rejections to this point have been all JQuery related.

---

<div class="post-metadata">

**Author:** ![BarryCarlyon](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/barrycarlyon/32/253_2.png) [@BarryCarlyon](https://staging-discuss.dev.twitch.com/u/BarryCarlyon)\
**Post date:** [October 16, 2019, 10:42am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/18 "2019-10-16T10:42:17Z")

</div>

The second/repeated email with the rejection may have cited the wrong issue due to the previous issue being jQuery. _shrug_

---

<div class="post-metadata">

**Author:** ![Ady88](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/ady88/32/7197_2.png) [@Ady88](https://staging-discuss.dev.twitch.com/u/Ady88)\
**Post date:** [October 16, 2019, 10:48am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/19 "2019-10-16T10:48:15Z")

</div>

If we can’t use inline styles, can we not use background images then?

Part of my load script is to set the background-image css style for the poster. To maintain the correct aspect ratio I’m using background-size:cover.

---

<div class="post-metadata">

**Author:** ![BarryCarlyon](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/barrycarlyon/32/253_2.png) [@BarryCarlyon](https://staging-discuss.dev.twitch.com/u/BarryCarlyon)\
**Post date:** [October 16, 2019, 10:49am UTC](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850/20 "2019-10-16T10:49:34Z")

</div>

That should be allowed, as dynamic zoom of overlay extensions use JS to set CSS (I have this active in an extension)

[Next page](https://staging-discuss.dev.twitch.com/t/stuck-in-a-loop-with-extension-review-policy/22850.md?page=2)
