While trying to setup testing WebDAV server using Apache Tomcat 11, I was always getting HTTP Status 400 – Bad Request, when checking synchronization configuration, despite WebDAV server working fine when tested via other tools.
After a bit of debugging, I’ve found out, that the issue is caused by recent change in Apache Tomcat, which now checks If-None-Match header in PROPFIND requests.
Joplin is sending random value in this header, see joplin/packages/lib/WebDavApi.js at dev · laurent22/joplin · GitHub
lines 363-373
Question is, whether it is possible to restrict setting If-None-Match to random value to iOS app? Or find another solution to issue on iOS?
I’ve also filed bug report for Apache Tomcat 11, but Tomcat devs aren’t willing to help with this issue. Their response was: “Since the library you are using is taking steps to accommodate the behavior of something that expects random data, it can also accommodate the Tomcat behavior which requires legitimate content (or avoid sending bogus headers).”