How to Fix Google Play VpnService Policy Rejection
Prove an eligible core VPN use case or remove VpnService from every active artifact, then align the listing, disclosure, consent, declaration, encryption, and review video.
Direct answer
First classify why the signed app uses VpnService. Google Play permits a device-level tunnel to a remote server when VPN is the app's core functionality, or when the remote server is required for an eligible core function such as parental control, enterprise management, app-usage tracking, device security, a network tool, a web browser, or an operator connectivity service. If the app does not fit, remove every VPN service from all active artifacts and release tracks before resubmitting. If it does fit, make the store listing, encrypted tunnel, separate in-app disclosure and affirmative consent, Play Console declaration, collected-data answers, and a working video of 90 seconds or less all describe the same signed release.
Match the wording in your rejection
“Use of VpnService is not a permitted use case”
The reviewer could not verify VPN as the core product or one of Google's listed exception categories. Remove the service when that classification is correct; otherwise prove the specific eligible core workflow and why it requires a remote server.
Google cannot confirm the declared core functionality
Make the use case visible in the signed release, store listing, declaration, and short video. Selecting a permitted category in Play Console is not sufficient when the actual product purpose or reviewer path does not match it.
Prominent disclosure or consent is missing
When VpnService accesses or collects personal or sensitive data, show a separate disclosure during normal in-app use before that access, name the data and its use or sharing, and require an affirmative action. A privacy-policy link or bundled terms screen is not enough.
VpnService still appears after the feature was removed
Inspect the final merged manifest and every active artifact and track. A dependency, product flavor, legacy version, or service declaration using BIND_VPN_SERVICE can keep the policy declaration active.
The declaration video does not verify the VPN flow
Record the exact signed release from opening the app through the VPN use. When disclosure applies, also show the complete text, consent, non-consent path, and how the user can trigger the disclosure again.
What this rejection usually means
A VpnService rejection is usually not fixed by changing one sentence in the declaration. Google evaluates a chain of facts: whether the class is present in any active artifact, whether the remote tunnel is indispensable to the app's actual core purpose, whether that purpose belongs to an allowed category, whether tunnel traffic is encrypted, whether the listing documents the use, whether sensitive-data practices have a separate prominent disclosure and consent, and whether the video lets a reviewer reproduce the same behavior. A stale library or track can cause the first mismatch; a generic declaration, gated feature, inaccessible video, or inconsistent data answer can cause the rest.
Likely rejection signals
- The merged manifest contains a service protected by android.permission.BIND_VPN_SERVICE or an android.net.VpnService intent filter
- VpnService is used for ad traffic, monetization, generic filtering, local-only processing, or another function outside VPN and the listed exceptions
- The selected declaration category sounds plausible but is not the app's demonstrated core purpose
- The store listing does not clearly document the VpnService use
- Traffic to the remote VPN tunnel endpoint is not encrypted or the implementation cannot prove the encrypted path
- Personal or sensitive data passes through the service before a separate, in-context disclosure and affirmative consent
- A library, flavor, internal test release, open testing release, or older production artifact still contains the service
- The review video is inaccessible, longer than requested, uses another build, skips denial, or does not show the VPN operating
Recovery plan
- Preserve the complete policy notice. Record the package name, affected version code, release track, enforcement status, cited wording, current VpnService declaration answers, and the exact video URL reviewed by Google. Stop unchanged resubmissions while you reconcile these facts.
- Inspect every active App Bundle and its merged manifest, not only the main source manifest. Inventory each service that extends VpnService, every BIND_VPN_SERVICE permission and android.net.VpnService intent filter, the dependency or module that contributes it, and the version codes still active in production and testing tracks.
- Classify the real core use. Keep VpnService only when VPN itself is core or a remote server is required for the app's core parental-control, enterprise-management, app-usage-tracking, device-security, network-tool, browser, or operator-connectivity function. Write one sentence connecting the tunnel to the user outcome; if that sentence depends on a secondary or optional feature, eligibility is weak.
- If the use is ineligible, remove the service declaration and its originating SDK, plugin, flavor, or code path as appropriate. Replace the feature with an API that does not create a device-level VPN when possible. Publish a higher version code and make sure no active artifact across any release track still contains the VPN service.
- If the use is eligible, verify the implementation in the signed release. The user should initiate preparation through the system flow, the service should establish the intended tunnel, the connection to the remote endpoint must be encrypted, ongoing behavior should be visible and controllable, and revocation should close the interface and stop cleanly. Secure the service with BIND_VPN_SERVICE and the required service intent filter.
- Map every category of data the VPN can access, collect, or share, including browsing, identifiers, app activity, diagnostics, and location where applicable. Reconcile the actual data path with the privacy policy, Data safety section, declaration answers, retention, sharing, and SDK behavior.
- When personal or sensitive data is accessed or collected through VpnService, add a standalone prominent disclosure in the normal flow before access. State which data the service handles and how it is used or shared, require an affirmative tap or checkbox, and provide a usable path when the user declines. Do not bury the disclosure in settings, a privacy policy, terms, or a bundle of unrelated permissions.
- Update the Play Console VPN service declaration for the exact behavior now shipped. Select only the applicable core category, explain why the remote server is necessary, list the data handled, confirm whether traffic is manipulated for monetization, and make the store listing explicitly document VpnService use.
- Record a public or reviewer-accessible video no longer than 90 seconds from a clean install of the signed release. Show the app opening, the exact path to the core feature, the VPN starting and operating, and the user-visible outcome. When disclosure applies, show the full disclosure, affirmative consent, the non-consent path, and how the disclosure is presented again.
- Test the signed artifact with fresh install, consent accepted and declined, VPN permission granted and revoked, tunnel interruption, app backgrounding, reconnection, and stop behavior. Recheck all active tracks, declaration answers, listing, Data safety, privacy policy, credentials, and video access immediately before submitting one corrected release.
- In the policy response, identify the package, version code, track, eligible category, completed changes, and shortest reviewer path. Appeal only when the exact reviewed release already satisfied the policy or Google assessed the wrong artifact or facts; otherwise fix the product and evidence before resubmitting.
Evidence to prepare
- Full policy notice, enforcement status, package name, affected version code, and release track
- Merged-manifest inventory for every active artifact showing each VpnService, BIND_VPN_SERVICE declaration, and contributing dependency
- Core-functionality map naming the eligible category, remote-server need, user trigger, tunnel behavior, result, and stop path
- Proof that the device-to-tunnel-endpoint connection is encrypted
- Store-listing text, VPN declaration screenshots, Data safety answers, and privacy-policy sections matching the release
- Data-flow inventory covering every personal or sensitive data type accessed, collected, shared, retained, or processed by the service
- Screenshots and recording of the separate prominent disclosure, affirmative consent, refusal path, and redisplay path when required
- Accessible video of 90 seconds or less showing the clean-install reviewer flow and VPN in use
- Clean-install test results covering permission, consent, revocation, interruption, backgrounding, reconnection, and termination
Appeal or fix first?
Clarify or appeal when the exact artifact reviewed by Google has VPN as its core purpose or a listed eligible exception, the listing documents the service, the remote endpoint is encrypted, sensitive-data disclosure and consent are compliant when applicable, and the declaration and video prove the same release. Identify the factual mismatch and attach version-specific evidence rather than arguing that other VPN apps were approved.
Fix and resubmit when the actual core use is outside Google's allowed categories, any active artifact still contains an unnecessary VpnService, the listing or declaration is inaccurate, tunnel encryption is missing, sensitive-data disclosure or consent is incomplete, traffic is manipulated for monetization, or the reviewer cannot reproduce the signed release from the supplied video and access path.
Reviewer response framework
Your response should be factual, short, and limited to the submitted build. Cover these points:
- Name the package, version code, release track, enforcement status, and VpnService component.
- State whether the service was removed from all active artifacts or retained under one specific eligible core category.
- For a retained service, explain why the remote server is necessary, confirm encrypted transport, and give the exact in-app verification path.
- List completed disclosure, consent, declaration, listing, Data safety, or video changes present in the same release.
- Provide the accessible video and working reviewer prerequisites, then request review of the corrected release or reconsideration of the documented facts.
Frequently asked questions
Which apps are allowed to use VpnService on Google Play?
Google permits apps whose core functionality is VPN, plus listed remote-server-dependent categories: parental control, enterprise management, app usage tracking, device security, network tools, web browsers, and operator connectivity services. The shipped core purpose must actually match the selected category.
Is selecting a permitted category in the declaration enough?
No. Google also requires the actual core functionality to match, VpnService use to be documented in the listing, and data from the device to the tunnel endpoint to be encrypted. The signed app and review video must make the use verifiable.
Why does Play Console still detect VpnService after I removed my VPN screen?
The final merged manifest or another active version can still contain the service. Check dependencies, flavors, BIND_VPN_SERVICE declarations, intent filters, and every active artifact across production and testing tracks.
What must the VpnService declaration video show?
Google asks for a video of 90 seconds or less showing the app opening and the VPN being used. When prominent disclosure applies, show the full disclosure, consent, non-consent behavior, and how the user encounters the disclosure again.
Should I appeal a VpnService policy rejection?
Appeal when release-specific evidence shows the reviewed artifact already met an eligible category and every related requirement, or Google assessed the wrong artifact or facts. If the use, declaration, disclosure, listing, encryption, or video is actually deficient, correct it and resubmit.
Need a rejection-specific plan?
Start with the free diagnosis. The $29 Fix Pack adds the prioritized remediation plan, evidence checklist, reviewer-ready reply, and preflight.
Source: Google Play — Understanding the VpnService policy. Platform policies change. Verify the official rule before submitting. Resubmit AI provides technical and editorial decision support, not an approval guarantee or legal advice.