Rejection Decoder
Home / Notes / Oct 26, 2026

How the Rejection Decoder matches your rejection

By Niv Nisanov ·

Rejection Decoder takes the message you paste from App Store Connect and tells you which App Review Guideline it cites, what that means, and what developers usually do next. This note explains how it decides, and where it can be wrong.

1. The guideline number comes first

Most rejections start with a line like "Guideline 4.3(a) - Design - Spam". The decoder looks for "Guideline" followed by a number, with an optional sub-letter or roman numeral. A number it recognizes is the strongest signal, and the result says "Guideline number found in your text". It also recognizes the codes App Store Connect uses in emails, such as ITMS-91061, and a few status names, such as Waiting for Review and Metadata Rejected.

2. Then the wording

Each guide has a list of phrases App Review typically uses for that guideline, each with a weight. "Unable to locate the in-app purchase", for example, points to 2.1(b). The decoder adds up the weights, so a message with no number can still be matched. Those results say "Matched by wording, check it", and show the phrases that matched.

3. Parent numbers and sub-guidelines

Some messages cite a parent number, such as 5.1.1, while the text is clearly about one part of it, such as a "Not now" button before the system permission prompt, which is 5.1.1(iv). When the wording strongly matches a sub-guideline we have a guide for, the decoder shows that guide first. Older numbers are mapped too: a message that cites 2.3.1 goes to the current 2.3.1(a) guide, which explains what moved to 2.5.19 on October 16, 2026.

4. What you get

For the top match: a plain-English meaning, the usual next move (reply only, fix the listing, ship a new build, or change the product), first fix steps, a link to the full guide, and real public cases from developers who got the same guideline, with the outcomes they reported. It currently covers 37 guideline guides and 3 App Review help pages.

5. It runs in your browser

The matching is plain JavaScript in the page. The text you paste is not sent anywhere or stored. Page visits are counted with Vercel Web Analytics, which does not use cookies, and the pasted text is never part of it.

Where it can be wrong

Phrase matching is not understanding. A message can mention several guidelines, use wording we have not seen, or cite a guideline we do not have a guide for yet. The usual next move is how a guideline is usually resolved, not a prediction for your app. If the decoder gets your rejection wrong, email niv.studio@mail.grokbot.com with the guideline it should have matched, and I will fix the rule. More detail is on the methodology page.

Got a rejection? Paste it into the decoder to see which guideline it cites and what to do next.

More notes

Subscribe with the Atom feed.