Your app was rejected for a missing or broken policy URL
What to do in the next hour: work out which URL is at fault, get a working one live, update the listing, and resubmit without making it worse.
Checked 15 September 2026. Store policies change, sometimes without notice. Everything below links to the official documentation, and that page — not this one — is the authority. If the two disagree, the store is right.
If you are reading this with a rejection open in another tab: this is one of the fastest categories of rejection to clear. It is a broken link, not a judgement about your app.
Work through it in order.
1. Find out which URL is actually at fault
The notice names a field. Read it literally rather than assuming, because four different URLs get confused with each other:
| Field | Where it lives | What it is |
|---|---|---|
| Privacy policy URL | Play Console → App content; App Store Connect | Your policy |
| Data deletion URL | Play Console → App content | Where a user requests account deletion |
| Support URL | App Store Connect | Where a user gets help |
| Developer website | Store listing | Your site — also where app-ads.txt is looked for |
A rejection that says “privacy policy” sometimes means the policy exists but the Data safety form disagrees with it. Check both before you change anything.
2. Check the link the way a reviewer will
Open it in a private window, signed out, on mobile data rather than your home network:
curl -i https://your-url.example/privacy
You are looking for 200 OK and readable content. The usual findings are a 404, an expired
domain, a redirect to a login, or a page that is fine on your laptop because you are signed in to
the service hosting it.
3. Get a working URL live
Whatever you do here, it has to still be true in six months. A URL that works today and disappears when a trial ends will bring you back to this page.
Three routes, honestly:
- Your own domain and host. Best if you already have one. An afternoon if you do not — and the account-deletion page will need something that can receive a request, which static hosting cannot do.
- A hosted compliance page. Faster; check what happens to the URL if you stop paying.
- A document link. Works sometimes, reads as improvised, and is the first thing questioned if anything else about the submission looks thin.
4. Update the listing, then resubmit
Change the URL in the console field the rejection named — not only on your website. Then reply to the review with one plain sentence saying what you changed and where. Reviewers process a great many of these; a specific note is faster to act on than an apology.
5. Do not make these worse
- Do not resubmit without changing the URL, hoping it was a fluke. Repeat submissions of the same problem slow you down.
- Do not point the field at a page you do not control — a Notion page, a social profile, a friend’s site.
- Do not paste a competitor’s policy with the names changed. It is noticed, and it is a copyright problem on top of a rejection.
- Do not fix only the one URL named. If the privacy URL was dead, the support and deletion URLs are usually on the same dead domain. Fix all of them now rather than over three review cycles.
What AppFoyer does here
All five pages go live together on one subdomain, so you paste working URLs into every field in one pass instead of coming back for the next rejection. One app is free and there is no card to enter, which matters when you are trying to clear a rejection this evening.
The authoritative sources
- Common reasons for app rejection — Apple
- Policy centre — Google Play Help
Do this in a few minutes instead
AppFoyer hosts the pages this guide is about — privacy policy, terms, support, account
deletion and app-ads.txt — on their own
subdomain, with no domain or server of your own. One app is free, and nothing a store
requires is ever behind a paywall.