Operating system
iOS
Joplin version
13.5.3
Sync target
WebDAV
What issue do you have?
Hi,
I’m having persistent sync issues with the iOS Joplin client when connecting to my self‑hosted setup. Desktop clients work fine, but the iOS app immediately fails with “Network request failed”.
Setup
Joplin Server (Docker) exposed on a public IP over HTTP.
WebDAV on Apache (Windows + XAMPP), with a dedicated directory for Joplin.
Both services are reachable from the internet.
Joplin desktop (Windows) can successfully sync:
Directly to Joplin Server.
Via WebDAV (Apache).
iOS device can open both endpoints in Safari:
Joplin Server login page loads correctly.
WebDAV URL prompts for Basic Auth and works.
iOS Joplin configuration
I tested two sync targets:
Joplin Server
Sync target: “Joplin Server”.
Server URL: HTTP URL of my public endpoint (same as desktop).
Email/password: same account that works in the web UI and on desktop.
WebDAV
Sync target: “WebDAV”.
WebDAV URL: same HTTP URL/path that desktop uses.
Username/password: same credentials as desktop, verified.
On iOS:
Proxy settings inside Joplin are disabled and the proxy address is empty.
System‑level HTTP proxy is off.
VPN/ad‑blocking apps are disabled.
I also reset iOS network settings and re‑entered Wi‑Fi.
Symptoms
On iOS, when I tap “Check synchronization configuration”, I get:
Network request failed
The error appears almost instantly, not after a timeout.
At the same time:
Joplin desktop syncs successfully to the same endpoints.
Safari on the iPhone can open both the Joplin Server URL and the WebDAV URL.
Server logs (Docker Joplin Server and Apache WebDAV) show no new requests from the iOS client at the moment of the error (only background tasks for Joplin Server and normal WebDAV traffic from desktop).
iOS log (from the in‑app log screen)
The log shows lines similar to:
JoplinServerApi: Could not acquire session: TypeError: Network request failed
A generated curl example like:
curl -X POST -H "X-API-MIN-VERSION: ..." -H "Content-Type: application/json" -d '{"email":"...","password":"...","type":2,"version":"3.16.3"}' "http://:22300/api/sessions"
So the app is clearly trying to hit the HTTP endpoint, but it fails with TypeError: Network request failed before any HTTP status code is logged.
What works vs what fails
Works:
Joplin desktop → Joplin Server (HTTP, same URL as iOS).
Joplin desktop → WebDAV on Apache (same URL as iOS).
iOS Safari → Joplin Server login page.
iOS Safari → WebDAV path (prompts for Basic Auth and lists content).
Fails:
iOS Joplin app → Joplin Server.
iOS Joplin app → WebDAV.
In both failing cases the app shows Network request failed, and there’s no corresponding HTTP request in server logs.
Questions
Is this a known issue/limitation of the iOS client when using plain HTTP to self‑hosted endpoints?
Are there additional iOS‑specific settings (App Transport Security, minimum TLS, etc.) that could cause Network request failed even when Safari works and desktop clients can sync?
Is there a recommended workaround (e.g. mandatory HTTPS with a trusted certificate, specific headers, or a config flag) for self‑hosted Joplin Server / WebDAV when used with the latest iOS app?
Any guidance or debugging tips (e.g. specific logs to collect, diagnostic builds) would be greatly appreciated.