[PM-39023] Autofill on HTTP sties stopped working on iOS, still works with popup warning on desktop
- Dominant language
- Swift
- Stars
- 684
- Forks
- 154
- Avg merge
- 7d 2h
- Merged PRs (30d)
- 32
Description
### Steps To Reproduce
Has been going on for several months, and there are a lot of [reddit reports](https://old.reddit.com/r/Bitwarden/comments/1pnoxhl/android_browser_local_ip_autofill_not_working/) of it and a similar android bug (https://github.com/bitwarden/android/issues/5609) and similar iOS bugs https://github.com/bitwarden/ios/issues/2538 as well.
iOS 26.5.0 bitwarden 2026.5.0 (3226)
Tested combinations, w/ match detection "Starts with"
✅ Desktop firefox/chrome/brave + HTTPS
✅ Desktop firefox/chrome/brave + HTTP
✅ iOS firefox/chrome/brave + HTTPS
❌ iOS firefox/chrome/brave + HTTP
If I visit my local app at `https://192.168.10.100:9090`, which presents an SSL cert even though it's invalid (you can't have a valid ssl cert for an IP address), both desktop and mobile bitwarden integrations show matching password options and thus autofill works great.
If I visit the same app on the non-ssl port `http://192.168.10.100:8080` desktop bitwarden autofill works fine, but mobile does not suggest any matches so no autofill.
### Expected Result
Password autofills on any site, http or https.
### Actual Result
Password only autofills on https sites
### Screenshots or Videos
### Additional Context
_No response_
### Build Version
3226
### What server are you connecting to?
US
### Self-host Server Version
_No response_
### Environment Details
_No response_
### Issue Tracking Info
- [ ] I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.
Contributor guide
Research direction
Start by reproducing the reported matrix on iOS 26.5.0 with Bitwarden 2026.5.0 (3226), comparing the local HTTP and HTTPS URLs across Firefox, Chrome, and Brave. Trace the iOS autofill matching behavior for HTTP versus HTTPS; done means matching password options appear and autofill works for the HTTP case without regressing HTTPS.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, swift
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100