ionic-team / ionic-team/capacitor
[Bug]: CapacitorHttp requests do not fire on Android 17 randomly
- Dominant language
- TypeScript
- Stars
- 16.7k
- Forks
- 1.3k
- Avg merge
- 3d 15h
- Merged PRs (30d)
- 10
Description
### Capacitor Version
```
Latest Dependencies:
@capacitor/cli: 8.5.1
@capacitor/core: 8.5.1
@capacitor/android: 8.5.1
@capacitor/ios: 8.5.1
Installed Dependencies:
@capacitor/cli: 8.5.1
@capacitor/ios: 8.5.1
@capacitor/android: 8.5.1
@capacitor/core: 8.5.1
[success] Android looking great! 👌
```
### Other API Details
```Shell
npm: 11.16.0
node: 24.18.0
```
### Platforms Affected
- [ ] iOS
- [x] Android
- [ ] Web
### Current Behavior
CapacitorHttp.request() never fires on Android 17 over Wi-Fi with Google DNS in Play Store build only
- Upgraded from Capacitor 7.x to 8.5.1
- Angular + Ionic, using
CapacitorHttp.request()for all API calls minifyEnabled false(R8 not involved)
With CapacitorHttp: { enabled: true }, HTTPS requests to our API never execute, but only under a specific combination of conditions:
Build | Android | DNS | Result
-- | -- | -- | --
Play Store (live) | 17 (real device) | Google 8.8.8.8 | ❌ fails
Play Store (live) | 17 (real device) | ISP / other provider | ✅ works
Locally generated APK | 17 (real device) | Google 8.8.8.8 | ✅ works
Play Store (live) | 16 (real device) | Google 8.8.8.8 | ✅ works
Play Store (live) | 14 (real device) | Google 8.8.8.8 | ✅ works
All rows are the same codebase and the same version. Only the store build, on Android 17, on a network using Google DNS, fails.
In Chrome DevTools (chrome://inspect):
- Android 16 and 14: the request appears in the network tab and completes normally.
- Android 17 (failing case): the request never appears in the network tab at all. No pending entry, no failed entry.
DNS records themselves appear healthy: the domain resolves correctly from a Windows machine against 8.8.8.8 (Resolve-DnsName returns valid A records, no SERVFAIL). Our API is hosted on Render behind Cloudflare.
### Expected Behavior
The request either executes and resolves, or rejects with an error. Currently it does neither, no network activity and no exception which leaves the app with no way to detect or recover from the failure.
### Project Reproduction
Unable to provide a public repository
### Additional Information
_No response_
Contributor guide
Research direction
Start at the CapacitorHttp.request() Android entry point and reproduce the Play Store build on Android 17 using Google DNS, comparing it with the local APK and older Android versions. Use chrome://inspect to confirm whether the request is created; done means the failing case either completes or rejects with an observable error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, angular, typescript
- Domain
- mobile, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100