Android app won't sync

Operating system

Android

Joplin version

3.5.8

Sync target

Joplin Server

What issue do you have?

I've Joplin running for years without problems. I use HAProxy (on pfSense) as its reverse proxy for an internal subdomain, e.g. notes.home.mydomain.com. I do not expose my joplin to external access.

Joplin desktop and Joplin app on iPad can sync with my self-hosted Joplin server (on Unraid) via my home wifi without problem. But lately, my Joplin on Android cannot sync. The server url, login, and password are definitely correct. I can't figure out why.

Screenshots

Hi,

From your Android phone you should verify connectivity to the synchronization port on the Joplin server.

Here are instructions I got from chat GPT. They look pretty accurate.

The first thing I would do is follow their advice just using a browser to connect to the sync port.

There are several ways to test connectivity from your Android device. Often, the issue is a "handshake" problem between the phone and the server, usually due to local network settings or firewall rules.

Here are the best methods to verify if your phone can actually "talk" to the server:

1. The Browser Test (Simplest)

Open Chrome or any web browser on your Android phone and type your server's address and port into the URL bar:

http://[your-server-ip]:22300

* Success: If you see the Joplin Server login page, the port is open and reachable.

* Failure: If the page times out or says "Connection Refused," your phone is being blocked by a firewall or is on a different subnet.

2. Use a "Network Analyzer" App

If the browser test fails, you can use a dedicated tool like Network Analyzer or Ping & Net (available on the Play Store). These apps allow you to perform a Port Scan:

* Enter your server's IP address.

* Specify port 22300.

* Run the test. It will tell you if the port is Open, Closed, or Filtered (stealthed by a firewall).

3. Use Termux (For Power Users)

If you have Termux installed, you can use nc (Netcat) to check the port directly:

* Open Termux.

* Type: nc -zv [your-server-ip] 22300

* If it says succeeded!, the connection is clear.

Common Culprits for Android Sync Issues

If the server is reachable via browser but the Joplin app still won't sync, check these three things:

* HTTPS vs. HTTP: Android often blocks "Cleartext" (HTTP) traffic by default for security. If you aren't using an SSL certificate (HTTPS), the app might be silently blocking the connection.

* Local Network Permissions: Ensure the Joplin app has permission to access the "Local Network" in your Android system settings.

* The "0.0.0.0" Bind: Ensure your Docker setup/Server is listening on 0.0.0.0 (all interfaces) and not just 127.0.0.1 (localhost), otherwise it will ignore requests coming from outside the server itself.

Thanks. I forgot to mention that I can log in to the same url notes.home.mydomain.com inside Edge browser on my Android phone. I also have some other apps accessing xxxx.home.mydomain.com from my Android phone without problem

That’s great ONLY it doesn’t specifically verify that the TCP port that Joplin uses is working.

Try out edge with http://[your-server-ip]:22300

Invalid origin http://xxx.xxx.xx.xxx:22300
I believe this is because my app_base_url is set to https://notes.home.mydomain.com

Run this instead:

If you have Termux installed, you can use nc (Netcat) to check the port directly:

* Open Termux.

* Type: nc -zv [your-server-ip] 22300

* If it says succeeded!, the connection is clear.

You can try notes.home.mydomain.com 22300

You can also try monitoring and capturing the data packets between the phone and server if you feel comfortable with that.
Either wireshark portable version or a simpler app called Sniffnet

Sniffnet on Github

Thanks. nc command on Termux as you suggested went through.
I’m not sure what you say about trying notes.home.mydomain.com 22300?
Sniffnet filter for traffic between my mobile phone wifi ip and my unraid server displayed no relevant traffic.