What the rejection typically looks like
Guideline 1.2 - Safety - User-Generated Content
Your app includes user-generated content but does not have all the required precautions. Apps with user-generated content must take specific steps to moderate content and prevent abusive behavior.
Next Steps: Revise your app to implement these precautions:
- Require that users agree to terms (EULA) that make clear there is no tolerance for objectionable content or abusive users
- A method for filtering objectionable content
- A mechanism for users to flag objectionable content
- A mechanism for users to block abusive users
- Act on objectionable content reports within 24 hours by removing the content and ejecting the user who provided it
Paraphrased example – the exact wording in your message may differ.
What Guideline 1.2 actually requires
Guideline 1.2 sits in the Safety section of the App Store Review Guidelines. It applies whenever one user can see something another user created: posts, comments, chat messages, profile photos, usernames, reviews, listings, uploaded media – and, going by developer reports, often AI output that users generate and share. Per the guidelines, apps with user-generated content or social networking services "must include":
- a method for filtering objectionable material from being posted,
- a mechanism to report offensive content and timely responses to concerns,
- the ability to block abusive users,
- published contact information so users can easily reach you.
The rejection message usually adds two expectations the guideline text doesn't spell out: users must agree to terms (an EULA) stating there is no tolerance for objectionable content or abusive users, and you must act on reports within 24 hours by removing the content and ejecting the user who posted it. Treat both as hard requirements.
The guideline also names app types that don't belong on the App Store and may be removed without notice: apps that end up used primarily for pornography, Chatroulette-style experiences, random or anonymous chat, "hot-or-not" objectification of real people, threats or bullying. Apps showing content from a web-based service may display incidental mature content only if it is hidden by default and can be turned on only via your website.
Moderation stays your job after launch: if Apple finds violating content, it asks you to remove it and send a plan to improve compliance, and the app can be pulled from the App Store until you demonstrate improvements. And under 1.2.1(a), added in the November 13, 2025 guidelines update, creator apps must give users a way to identify content that exceeds the app's age rating and use an age restriction mechanism based on verified or declared age to limit access by underage users.
Common reasons apps get rejected under 1.2
| Trigger | What the reviewer sees |
|---|---|
| No terms gate | Terms only linked in a footer or Settings; users can post without accepting; no zero-tolerance wording. |
| Report only in some places | Posts can be reported, but comments, profiles or chat messages can't – or "Report" just opens a mail client. |
| Block missing or ineffective | Blocking only via support email, or the blocked user's posts and messages still appear. |
| No visible filtering | A slur typed into a post or username goes live instantly. |
| UGC you didn't count | Recipe comments, leaderboards with custom names, avatar uploads, product reviews. |
| No contact information | No support email or form in the app; the Support URL is a marketing page. |
| Features unreachable | Login without a demo account, or an empty feed with nothing to report or block. |
| Shared AI output | Generated images or text in a public gallery with no report option. |
| Random or anonymous chat | Strangers matched at random as the core experience. The guideline excludes this category outright, so adding report and block buttons rarely changes the outcome. |
Rejected or stuck? Talk to an App Specialist – for free.
Book a free consultation call: we look at your rejection or setup, explain the fastest way forward and tell you honestly whether you need us. Prefer to hand it off? Book our AI-powered + human-powered service and we take care of it.
How to fix a Guideline 1.2 rejection step by step
- List every UGC surface. Feed, comments, DMs, group chats, profile name, bio and avatar, reviews, listings, shared AI creations, live streams. Each one needs filtering, a report action and a way to block the author.
- Put UGC behind terms acceptance. Show your terms at sign-up or before the first post, with an explicit "I agree" step that can't be skipped. State that objectionable content and abusive behavior aren't tolerated and lead to removal and bans. Store the accepted version and timestamp on your server. Optionally add a custom EULA in App Store Connect under App Information → General Information → License Agreement → Edit (plain text only), but the in-app acceptance step is what reviewers can actually test.
- Filter before content goes live. Do it on the server; client checks are easy to bypass. Use word lists for text, usernames and bios in every supported language, plus a text and image moderation service that holds borderline items for review. Rate-limit new accounts and restrict their links and media. Apple's SensitiveContentAnalysis framework (iOS 17+, entitlement
com.apple.developer.sensitivecontentanalysis.client) detects nudity on-device, but only when the user has enabled Sensitive Content Warning or Communication Safety – so it can't be your only filter. - Add "Report" everywhere. Put it in the ellipsis or long-press menu of every post, comment, message and profile, with a short reason list. Confirm that reports are reviewed within 24 hours and hide the item from the reporter immediately. Store content ID, reporter, reason, timestamp and status.
- Make blocking instant. Offer Block on the profile and in the Report menu. The blocked user's content should vanish without a refresh, and they must no longer be able to contact the blocker. Add a "Blocked users" list with unblock in Settings, and surface blocks to moderators.
- Run a 24-hour moderation process. Build an admin tool that deletes content and bans accounts, ideally preventing re-registration. Route report alerts to a channel someone watches, name an owner, plan weekend cover and track time to action. Illegal content may also trigger legal reporting duties beyond Apple's rules.
- Publish contact information. Add Settings → Help & Contact with an email or form, and point the Support URL to a page with real contact details – see our Guideline 1.5 guide.
- Re-check your age rating. Answer the User-Generated Content, Messaging and Chat and Social Media questions under App Information → Age Ratings honestly (details below).
Chat, social, marketplace and AI-generated content apps
Chat and messaging
Every conversation needs "Report message" and "Block user" one tap away. With end-to-end encryption you can't filter on the server, so have the reporting user's app forward the reported messages to moderators, and explain this in your review notes.
Social feeds and age ratings
Apple added social media questions to the age rating questionnaire on July 9, 2026, and answers are required for new apps and updates from September 2026. Apple defines a social media capability as redistributing, amplifying or interacting with user-generated content through a social feed or similar discovery method. Apps with it show a Social Media content descriptor, and Apple's age rating values place them at 13+ globally, 15+ in Korea and 16+ in Australia. That applies even if you answer that social media is disabled for users under 13 – for that answer Apple expects, at a minimum, a Declared Age Range API check (iOS 26+) before social features are enabled. The benefit is that your app stays out of the Social Media Time Allowance category (Screen Time in iOS 27 and later) for users under 13. Plain UGC and messaging without a social feed are compatible with a 4+ global rating, though regional ratings such as Brazil's treat them differently. Local laws come on top: Australia has required certain social media platforms to keep under-16s from holding accounts since December 10, 2025, and that obligation is yours, not Apple's.
Marketplaces and reviews
Listings, seller profiles, photos and buyer reviews are UGC. Add "Report listing" and "Block seller", filter listing text and images, and remove scams within your 24-hour window.
AI-generated content
Guideline 1.2 doesn't mention generative AI, but developers report 1.2 rejections for apps where users create AI text or images, especially when results can be shared with others. Plan for the same safeguards: filter prompts and outputs, add a report option to every generated result and have a person review reports. If your app offers chatbots or plug-ins as software that isn't embedded in the binary, Guideline 4.7.1 explicitly requires a filtering method, a reporting mechanism with timely responses and the ability to block abusive users. Sending prompts to a third-party AI provider also triggers 5.1.2(i) disclosure and consent – see our 5.1.2 guide.
Cross-platform builds
If a Flutter, React Native or WebView community module renders UGC, the safeguards must work inside the app, not just on your website. Google Play's User Generated Content policy also requires terms acceptance, in-app reporting and blocking, so one implementation can serve both stores.
How to show your moderation features to App Review
A resubmission can fail again simply because the reviewer can't find features that do exist. Make them impossible to miss:
- Seed the demo account. Provide a demo account that doesn't expire and has a populated feed. Put a second account in the Notes – Apple asks for additional accounts there – so the reviewer can report and block someone. Our 2.1 Information Needed guide covers demo access.
- Map each requirement in the Notes. The Notes field in App Review Information holds up to 4,000 bytes – enough to list every safeguard with its tap path.
- Record a short video. Show the terms gate, a filtered test word, a report, a block and your admin tool removing content and banning the user. Reviewers can't see your backend, so a recording is the clearest way to show the moderation side exists. Link it in the Notes or upload it with the file attachment option in App Review Information.
- Keep the backend live. If the server is down or rate-limits the reviewer, filtering and reporting look broken.
Example notes structure:
UGC safeguards (Guideline 1.2):
1. Terms: shown at sign-up; posting disabled until accepted (zero tolerance, section 4).
2. Filtering: server-side check before publishing – try posting the test word "[word]".
3. Report: ••• on any post, comment, profile or message → Report.
4. Block: ••• → Block user; content disappears at once; Settings → Blocked users.
5. Moderation: reports reviewed within 24 hours; content removed, user banned. Admin video: [link].
6. Contact: Settings → Help & Contact.
Replying to App Review or appealing
- Features were missing: build them, upload a new build, update the notes and reply in App Store Connect with what changed and where to find it.
- The reviewer missed them: reply without a new build, with tap paths, a video link and demo credentials, and ask for a re-review.
- You disagree: if you believe you comply – say Apple called your app "anonymous chat" but users have verified identities – appeal to the App Review Board. You get one appeal per rejected submission, so answer open questions first.
- Apple flagged live content: remove it immediately and send the requested compliance plan – what failed, what you changed and how you monitor it now. Apple can remove the app until you demonstrate improvements, so treat this as urgent.
Preventing 1.2 rejections in future releases
New features quietly add UGC surfaces – a comment field, a shared AI gallery – and trigger 1.2 long after your first approval. Build checks into your release process:
- Ask "does this add a UGC surface?" in every feature spec; if yes, report, block and filtering are part of done.
- Run XCUITest flows in CI that accept the terms, report a post and block a user on every release build.
- Alert when a report has been open for close to 24 hours.
- Re-test the moderation flow on TestFlight before each submission and keep notes and video current.
- Re-answer the age rating questionnaire whenever social or chat features change.
AI-assisted pre-submission checks are good at spotting forgotten surfaces, like a username field without filtering; a human still has to judge whether the flows are obvious to a reviewer. If you want a second pair of eyes before resubmitting, book a free consultation call with appsubmitter.io and we'll review your UGC flows and notes with you.
Template: how to reply to App Review
Adapt this template to your situation. Keep it factual, short and specific – and only claim what you have actually changed.
Checklist before you resubmit
- Every UGC surface (posts, comments, chat, profiles, reviews, listings, shared AI output) is covered.
- Users must accept terms with zero tolerance for objectionable content and abusive users before posting.
- Server-side filtering blocks or holds objectionable text, usernames and images before they go live.
- Every post, comment, message and profile has a Report action within one or two taps.
- Blocking hides the blocked user's content immediately and stops further contact; unblock is possible in Settings.
- An admin tool can delete content and ban accounts, and someone owns the 24-hour response, weekends included.
- Contact details are in the app, and the Support URL shows real contact information.
- Age rating answers, including the social media questions, match the current feature set.
- The demo account has seeded content, a second test account is in the notes, and the backend is live.
- Review notes map each safeguard to a tap path and link a current screen recording.
Frequently asked questions
Is a report button enough to pass Guideline 1.2?
Does the 24-hour rule mean I need moderators around the clock?
My app only has usernames, avatars or comments. Does Guideline 1.2 apply?
Does Guideline 1.2 apply to AI-generated content?
Is Apple's standard EULA enough for the terms requirement?
Can I appeal a Guideline 1.2 rejection?
Official source: App Store Review Guidelines – 1.2 User-Generated Content. Store policies change regularly – always check the current version. This guide is independent advice and not affiliated with Apple or Google.