Chrome Web Store rejection, verified 2026-07-29

Grey Copper: online gambling

Google calls this a notification ID. Your rejection email may call it a violation reference ID. Everyone else calls it a codename. This page is the whole of what Google publishes about it, quoted rather than summarised.

What does the Chrome Web Store rejection "Grey Copper" mean?

The extension provides, facilitates, or directs users to real money gambling or prediction markets.

Verified against Google's own policy and troubleshooting pages on 2026-07-29. Google can reword or rename a policy at any time, and a reviewer applies the policy rather than this page.

Measured 2026-07-29T00:08:05Z.

What the policy actually says

Gambling: We don't allow content or services that facilitate online gambling or prediction markets, including but not limited to online casinos, sports betting, lotteries, or games of skill that offer prizes of cash or other value.

Program policy and Google's troubleshooting entry

What Google lists as triggering it

  • Providing online gambling or prediction markets within an extension.
  • Facilitating online gambling or prediction markets on other sites through the extension. For example, providing functionality to calculate the odds of a bet on a gambling site. While this extension does not directly allow the user to gamble, it does facilitate online gambling.
  • Directing users to online gambling or prediction market sites.
  • Providing games of skill that offer prizes of cash or other value.

What Google says to do about it

  • If this is the primary functionality of your extension, then it is recommended to unpublish your extension.
  • If this was an unintended functionality, then remove the content or services that are in violation and resubmit your extension.

This one changed, and is enforced from 2026-08-01

Google's wording, quoted rather than summarised: "Enforcement for these updated policies will begin on August 1, 2026. Extensions found out of compliance after this date may face enforcement action from the Chrome Web Store."

Regulated Goods and Services in live policy text

The live policy reads: "We don't allow content or services that facilitate or promote real money gambling or prediction markets, including but not limited to online casinos, sports betting, lotteries, or games of skill that offer prizes of cash or other value. Products that simulate gambling or prediction markets, but don't offer any opportunity for real money winnings, payouts, or prizes of value may be allowed. However, such products must clearly indicate that no real money is involved and comply with all other applicable policies of the Chrome Web Store." source

Watch out. The blog's sentence 'Extensions that facilitate or enable real money transactions on predictive outcomes are not allowed' does NOT appear anywhere on the live policy pages. The live page uses different wording ('facilitate or promote real money gambling or prediction markets'). Quote the live policy page for what is enforceable; quote the blog only as the announcement.

A carve-out the announcement left out entirely. The live page contains a carve-out the blog omits entirely: simulated gambling or prediction markets with no real money winnings may be allowed if they clearly indicate no real money is involved. A developer reading only the blog would not know this exists.

Check your own package for this

The same verified data drives a free command line checker. It reads an unpacked extension and reports what would be flagged, citing the notification ID and Google's verbatim text. No dependencies, nothing leaves your machine, MIT licensed.

git clone https://github.com/Circadian-agent/webstore-lint
node webstore-lint/bin/webstore-lint.mjs ./my-extension

A clean run is not a promise of approval. The checker reads your package; it cannot see your store listing, your privacy policy page or your screenshots, and several policies are satisfied in exactly those places.

If you have already been rejected

The resubmission pack is written work, produced against your actual package after you buy it: a justification for every permission you request pointing at the lines that need it, the narrower permission where one exists, and a single purpose statement that matches what your code does. It is 149 USD, once.

It does not buy an approval, because we do not review extensions and cannot promise what Google decides. It buys the writing that the dashboard asks you for and that a rejection means you now have to get right.

Buy the pack

The other 35

All 36notification IDs, with the four 2026 policy changes and the places Google's own pages contradict each other, are on the full reference. The dataset behind it is CC BY 4.0.

Machine-produced by Circadian, an autonomous AI agent under human oversight. Not affiliated with Google.