WebDav Sync not working

PreRelease 1.0.187

since 1.0.178 and later on windows sync on webDAV failed. Worked before with 1.0.175. Login data are ok. 2 different windows 10 machines with latest win 10 installation are affected. No PW changes. Mobile iOS client works.

After downgrade to 1.0.175 WebDav Joplin started to sync again.

request to https://xxx.com/Joplin/ failed, reason: write EPROTO 3229990200:error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL:…/…/third_party/boringssl/src/ssl/handshake_client.cc:569: (Code EPROTO)

Logs / more details to be found here: No sync on webDAV after upgrade to 1.0.178

installed 1.0.193 in Windows 10 today - the issue still exists. So I was force to return to 1.0.175. I am really sad

Check your configuration. I also installed 1.0.193 in the morning, and WebDAV just works well as it does in version 1.0.175.

That answer seems pretty generic and does not help. As I wrote, I’m not able to sync with Joplin on Windows 10 with all versions higher then 1.0.175. On two devices same issue.

It might lead in the right direction by questioning what WebDAV Server I’m using, as those are pretty different. Having that that the answer is: I’m still using Seafile WsgiDAV/1.2.0 on Phyton. Might be “special”, but works until 1.0.175 and then stopped. So someone changed something in the WebDAV code after 1.0.175 which leads to this issue…

Interestingly there are more error messages in V 1.0.193 which could help: DecryptionWorker: cannot start because no master key is currently loaded

Comment: Encryption is off ! & Latest iPhone Version still works with my WebDAV Server.

Code: EPROTO
FetchError: request to https:/xxxxxxxx/Joplin/.sync/ failed, reason: write EPROTO 2441043368:error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL:…/…/third_party/boringssl/src/ssl/handshake_client.cc:569:

at ClientRequest.<anonymous> (C:\Program Files\Joplin\resources\app.asar\node_modules\node-fetch\index.js:133:11)
at ClientRequest.emit (events.js:203:13)
at TLSSocket.socketErrorListener (_http_client.js:399:9)
at TLSSocket.emit (events.js:203:13)
at errorOrDestroy (internal/streams/destroy.js:107:12)
at onwriteError (_stream_writable.js:439:5)
at onwrite (_stream_writable.js:460:5)
at internal/streams/destroy.js:49:7
at TLSSocket.Socket._destroy (net.js:595:3)
at TLSSocket.destroy (internal/streams/destroy.js:37:8)"

2020-03-09 11:13:00: "Operations completed: "
2020-03-09 11:13:00: “Total folders: 17”
2020-03-09 11:13:00: “Total notes: 46”
2020-03-09 11:13:00: “Total resources: 129”
2020-03-09 11:13:00: “There was some errors:”
2020-03-09 11:13:00: "FetchError: request to https://xxxxxxxx/Joplin/.sync/ failed, reason: write EPROTO 2441043368:error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL:…/…/third_party/boringssl/src/ssl/handshake_client.cc:569:

Code: EPROTO
FetchError: request to https://xxxxxxxxxxx/Joplin/.sync/ failed, reason: write EPROTO 2441043368:error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL:…/…/third_party/boringssl/src/ssl/handshake_client.cc:569:

at ClientRequest.<anonymous> (C:\Program Files\Joplin\resources\app.asar\node_modules\node-fetch\index.js:133:11)
at ClientRequest.emit (events.js:203:13)
at TLSSocket.socketErrorListener (_http_client.js:399:9)
at TLSSocket.emit (events.js:203:13)
at errorOrDestroy (internal/streams/destroy.js:107:12)
at onwriteError (_stream_writable.js:439:5)
at onwrite (_stream_writable.js:460:5)
at internal/streams/destroy.js:49:7
at TLSSocket.Socket._destroy (net.js:595:3)
at TLSSocket.destroy (internal/streams/destroy.js:37:8)"

2020-03-09 11:13:00: “Updating all notifications…”
2020-03-09 11:13:00: “Garbage collecting alarms…”
2020-03-09 11:13:01: “DecryptionWorker: cannot start because no master key is currently loaded.”

One other sync log, 10min later;:

Code: EPROTO
FetchError: request to https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/Joplin/.sync/ failed, reason: write EPROTO 2441043368:error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL:…/…/third_party/boringssl/src/ssl/handshake_client.cc:569:

at ClientRequest.<anonymous> (C:\Program Files\Joplin\resources\app.asar\node_modules\node-fetch\index.js:133:11)
at ClientRequest.emit (events.js:203:13)
at TLSSocket.socketErrorListener (_http_client.js:399:9)
at TLSSocket.emit (events.js:203:13)
at errorOrDestroy (internal/streams/destroy.js:107:12)
at onwriteError (_stream_writable.js:439:5)
at onwrite (_stream_writable.js:460:5)
at internal/streams/destroy.js:49:7
at TLSSocket.Socket._destroy (net.js:595:3)
at TLSSocket.destroy (internal/streams/destroy.js:37:8)"

2020-03-09 11:22:29: “RevisionService::maintenance: Starting…”
2020-03-09 11:22:29: “RevisionService::maintenance: Service is enabled”
2020-03-09 11:22:29: “RevisionService::collectRevisions: Created revisions for 0 notes”
2020-03-09 11:22:29: “RevisionService::maintenance: Done in 124ms”
2020-03-09 11:22:39: “Scheduling sync operation…”
2020-03-09 11:22:39: “Preparing scheduled sync”
2020-03-09 11:22:39: “Starting scheduled sync”
2020-03-09 11:23:02: "FetchError: request to https://xxxxxx/Joplin/.sync/ failed, reason: write EPROTO 2441043368:error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL:…/…/third_party/boringssl/src/ssl/handshake_client.cc:569:

Code: EPROTO
FetchError: request to https://xxxxxxxxxxxxx/Joplin/.sync/ failed, reason: write EPROTO 2441043368:error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL:…/…/third_party/boringssl/src/ssl/handshake_client.cc:569:

at ClientRequest.<anonymous> (C:\Program Files\Joplin\resources\app.asar\node_modules\node-fetch\index.js:133:11)
at ClientRequest.emit (events.js:203:13)
at TLSSocket.socketErrorListener (_http_client.js:399:9)
at TLSSocket.emit (events.js:203:13)
at errorOrDestroy (internal/streams/destroy.js:107:12)
at onwriteError (_stream_writable.js:439:5)
at onwrite (_stream_writable.js:460:5)
at internal/streams/destroy.js:49:7
at TLSSocket.Socket._destroy (net.js:595:3)
at TLSSocket.destroy (internal/streams/destroy.js:37:8)"

2020-03-09 11:23:02: "Operations completed: "
2020-03-09 11:23:02: “Total folders: 17”
2020-03-09 11:23:02: “Total notes: 46”
2020-03-09 11:23:02: “Total resources: 129”
2020-03-09 11:23:02: “There was some errors:”
2020-03-09 11:23:02: "FetchError: request to https:/xxxxxx/.sync/ failed, reason: write EPROTO 2441043368:error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL:…/…/third_party/boringssl/src/ssl/handshake_client.cc:569:

Code: EPROTO
FetchError: request to https://xxxxxxxxxxxx/Joplin/.sync/ failed, reason: write EPROTO 2441043368:error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL:…/…/third_party/boringssl/src/ssl/handshake_client.cc:569:

at ClientRequest.<anonymous> (C:\Program Files\Joplin\resources\app.asar\node_modules\node-fetch\index.js:133:11)
at ClientRequest.emit (events.js:203:13)
at TLSSocket.socketErrorListener (_http_client.js:399:9)
at TLSSocket.emit (events.js:203:13)
at errorOrDestroy (internal/streams/destroy.js:107:12)
at onwriteError (_stream_writable.js:439:5)
at onwrite (_stream_writable.js:460:5)
at internal/streams/destroy.js:49:7
at TLSSocket.Socket._destroy (net.js:595:3)
at TLSSocket.destroy (internal/streams/destroy.js:37:8)"

Sorry, I missed a piece of important information that you used https instead of http. In my situation, http just works well. You can try using http instead of https. If it works well, maybe the problem lies in SSL.

Problem identified. It seems Joplin is using different or updated OpenSLL settings or libraries.
TLS 1.0 is not supported any longer.

Would be good to document this.

I’m on Linux and this hasn’t appeared there. I also haven’t seen others making bug reports about the Linux or Mac client having the same issue, so can we safely assume it’s a Windows only bug? Have you tried the issue on the mobile clients yet to see if they show the same?

TLS 1.0 is realy outdated.
Does your WebDav Server only support TLS1.0 ?

Beside Windows I’m using iOS where this problem has NOT occurred.

For windows the simple trick was to enable TSL 1.1 and TSL 1.2. As I’m using an older SSL config, this was not enabled by default…

agreed - it’s outdated. But had it been documented in the change-log, I would have found the problem quickly.
I’m using an older version of ISS as SSL Server. Updating the config fixed the issue.
https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi

In a nutshell: Beginning with Version 1.076 Joplin does not longer support TLS 1.0.

1 Like

That’d definitely be nice. At least the changelogs are substantially better than they were.

Any way to create a step by step on how you updated your config and mark it as the solution for those that may have the same issue in the future? Thanks