I started to experience a bit with the TUS protocol.
Instead of using my own server, I’m using the tus demo server (https://tusd.tusdemo.net/files/).
I found two issues with it so far.
The “Content-Length” field must be included in any PATCH request. Otherwise, the server
returns “Error: system lib” without accepting the payload.
This restriction was removed from the protocol on PR 137 (https://github.com/tus/tus-resumable-upload-protocol/pull/137), more than two years ago.
For some reason, the server does not reply to HEAD requests.
Both issues are in the Core Protocol and quoting from the protocol itself: “All Clients and Servers MUST implement the core protocol”.
So, if my observation is correct, the demo server is not compliant with the protocol and it is a pity.
In my opinion, the demo server should support the specification exactly as described so developers can play with it to have a better understanding of the protocol.