You uploaded a clean build, the binary passed processing, and the rejection email still arrives — citing Guideline 2.3.3 (Accurate Screenshots) or 2.3 (Metadata Accuracy) instead of anything about the actual app. The reviewer’s note will pinpoint a specific surface: a screenshot showing a feature you don’t ship, a keyword field stuffed with competitor names, a description that overpromises, or a category that doesn’t match what the app does. None of these require an engineering change — they’re content fixes, but each surface has its own rules, and most teams misread which surface is being flagged.
The fastest path is: identify the exact surface (screenshots vs description vs keywords vs category), apply the surface-specific fix, and resubmit metadata-only.
Common causes
Ordered by hit rate. Roughly half of all metadata rejections are #1.
1. Screenshots show features absent from the build
A previous version had an “AI Assistant” tab. You shipped a version without it but kept the marketing screenshot showing it. Reviewer downloads the binary, doesn’t see the tab, rejects under 2.3.3.
How to spot it: For each screenshot in your App Store Connect listing, identify the screen it shows. Open the build and try to reach that screen. If you can’t, the screenshot is stale.
2. Heavily mocked screenshots with claims the build doesn’t make
You shipped marketing-style screenshots — gradient backgrounds, oversized iPhone frames, and slogans like “3x faster than ChatGPT” layered on top. Apple is lenient on stylistic framing but rejects when overlaid text makes claims the app cannot demonstrate.
How to spot it: List every text overlay on every screenshot. For each, ask: can a user verify this claim by using the app for 5 minutes? If not, it’s a candidate for 2.3.3.
3. Keyword field stuffed with competitor names or repeated tokens
The 100-character keyword field contains “notion,evernote,obsidian,roam,logseq,note,notes,notes app,notes app pro”. Apple flags this as both metadata violation (competitor names) and low-quality SEO (repeated tokens).
How to spot it: App Store Connect → App Information → Keywords. Search the field for any third-party brand you don’t own. Count repeated stems (note, notes, notes app — those are the same root).
4. Description front-loads keywords with no context
Your description opens with “AI productivity assistant for Notion users, Slack users, Gmail users, Google Calendar users, Apple Calendar users…” — a list of integration claims with no narrative. Reviewer flags it as keyword stuffing under 2.3.
How to spot it: Read the first 170 characters (the part visible without tapping “more”). If it reads like a SEO meta-tag rather than a coherent sentence describing the app, it’s overweighted.
5. Primary category doesn’t match what users do in the app
You picked “Lifestyle” because it has more downloads, but your app is clearly a productivity tool. Or you picked “Productivity” for a game app. Reviewer rejects under 2.3 (Metadata Accuracy).
How to spot it: Open the app and write a one-sentence description of the user’s most common action. Match that against Apple’s category definitions. If the gap is more than one category away, your pick is wrong.
6. Promo text or subtitle makes time-bound claims that go stale
“New: AI summarization for iOS 17” — written 18 months ago, still in the subtitle. Reviewer flags it as inaccurate (the feature is no longer new; iOS 17 may no longer be supported).
How to spot it: Search subtitle, promo text, and description for the words new, just launched, coming soon, beta, latest, 2024, 2025. Any of these in a current submission needs to be removed or updated.
7. Localized metadata diverges from base language
See App Store product page localization confusion — covered separately.
Information to collect
- The full reviewer message including guideline number.
- A current dev-build set of canonical screenshots, one per advertised feature.
- The current keyword field and a list of every brand name in it.
- Description text broken into the visible-on-first-tap section and the rest.
- Promo text and subtitle current values.
Shortest path to fix
Step 1: Identify which surface was flagged
Re-read the rejection. Apple’s language pattern:
- “the screenshots… include content that is not in your app” → 2.3.3, fix screenshots.
- “your app description includes content that is misleading” → 2.3, fix description.
- “your keyword metadata… contains irrelevant or trademarked terms” → 2.3, fix keywords.
- “your app’s category does not match” → 2.3, fix category.
- “localized metadata… not consistent” → 2.3.7, fix per locale.
Treat each surface independently. Don’t waste time rewriting copy when the issue was screenshots.
Step 2: Re-capture screenshots from the actual build
In Xcode, run the build on the simulator at each required device size (6.7”, 6.5”, 5.5”, 12.9” iPad). Capture each canonical screen using Cmd+S or:
xcrun simctl io booted screenshot ~/Desktop/screen-6.7.png
For automation across device sizes and locales:
fastlane snapshot --devices "iPhone 15 Pro Max,iPhone 8 Plus,iPad Pro (12.9-inch) (6th generation)"
Replace every stale screenshot in App Store Connect with the freshly captured ones. Keep marketing styling minimal — text overlays should match in-app reality.
Step 3: Clean the keyword field
Rewrite the keyword field with these rules:
- 100 characters, comma-separated, no spaces between (
one,two,threenotone, two, three). - No third-party brand names you don’t own.
- No repeated stems (pick one of: note, notes, notes app).
- No words already in the title or subtitle (they’re indexed automatically).
- Locale-specific — separate field per locale.
Example clean field: gpt,llm,prompt,writing,summary,translate,voice,markdown,scan,ocr,docs
Step 4: Rewrite the description
Open with a sentence that says what the app does in plain language. Apple’s first-screen reveal is roughly the first 170 characters; everything important goes there.
Acme Studio turns any photo into a polished portrait using on-device AI.
No subscription required for basic edits; Pro unlocks batch and 4K export.
Features:
- One-tap enhance: lighting, skin, sharpness
- Background removal and replacement
...
Bad signs to remove: keyword lists, exclamation marks, all-caps phrases, claims you can’t prove in-app within five minutes.
Step 5: Pick the right category
Apple’s category list is short. Open the app and decide:
- What does the user do most? That’s the primary.
- What’s a closely-related secondary? Optional.
App Store Connect → App Information → Category. Save.
Step 6: Resubmit (metadata-only if binary unchanged)
In App Store Connect → App Store tab → tap the rejected build → Submit for Review. No re-archive needed for metadata-only changes.
How to confirm the fix
- Every screenshot in the listing corresponds to a screen reachable in the current build.
- Keyword field has zero competitor names and zero repeated stems.
- Description’s first 170 characters describe what the app does without keyword stuffing.
- Primary category matches the user’s most common action in the app.
- Submission moves from Metadata Rejected to Waiting for Review within 1-2 hours.
If it still fails
- Reply in Resolution Center with a screen-by-screen mapping: “screenshot 1 → app’s home screen, reachable by…”.
- If a specific claim was flagged, prove it in-app: record a 30-second video and attach.
- Ask for clarification when the rejection is vague (“misleading” without specifics) — Apple usually responds with more detail.
- Escalate via Contact App Review if a stylistic screenshot is rejected as “inaccurate” when the underlying feature does exist.
Prevention
- Maintain a
metadata/folder in your repo with one file per surface (screenshots, description, keywords, category) per locale, version-controlled. - Add a release-checklist item: capture or re-capture screenshots from the current build for every required device size.
- Keep the keyword field clean — quality matters more than quantity within the 100-character limit.
- Avoid time-bound language in subtitles and promo text (“new”, “latest”, year numbers).
- Run
fastlane deliverto sync metadata from your repo to App Store Connect, so the listing matches the build that shipped.