PROTOCOL_ERROR with proxy HTTP/2 and service behind it being HTTP/1
Hello,
Sorry to post it out here but I don't know where to post it elsewhere, this is more like an informations request (don't know if you can help on this).
After upgrading from Fedora 36 to Fedora 37, evolution is not able to sync any with my caldav/cardav with error HTTP/2 Error: PROTOCOL_ERROR
.
Translation: error means "Unable to connect to to calendar XXX", this is the same for cardav (addressbook).
From what I found and understand, this seems related to:
If I get things right, this seems related to Fedora 37 shipping with version 1.49 of libnghttp2 libnghttp2-1.49.0-1.fc37.x86_64
and the version that prevent this issue is 1.50.
Milan, I saw that you add a bug on the Fedora evolution repository (https://bugzilla.redhat.com/show_bug.cgi?id=2144358) but I don't know if it's the exact same issue so I was asking myself if there is anything on the way to upgrade to the 1.50 version of libnghttp2 on Fedora 37?
I think that I'm not going to be alone on this issue, so I wanted to gather some informations about this and eventually if there is something planned?
Eventually, if there is any workaround that could make things work again (i.e: edit the nginx/apache vhost conf to allow/force fallback to http 1.1 or something like that), I will really appreciate it!
Edit: It seems it has also something to do with nginx, if I go through the nginx and proxyfied connection, it can't connect, however, if I add the local address in my localhost file and it directly apache 2, caldav/cardav work. I try with curl and it seems that I have the same error type:
# With nginx as proxy (not working, send http2 error)
> curl "https://<nextcloud.domain.name>/remote.php/dav/calendars/<user>/<calendar-name>/"
curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
# With apache 2 using direct IP on local network (working, ask for credentials)
> curl "https://<nextcloud.domain.name>/remote.php/dav/calendars/<user>/<calendar-name>/"
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DAV\Exception\NotAuthenticated</s:exception>
<s:message>No public access to this resource., No 'Authorization: Bearer' header found. Either the client didn't send one, or the server is mis-configured, No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured</s:message>
</d:error>
This worked perfectly fine with nginx as proxy before upgrade and configuration hasn't changed since and it work using nginx from davx5 on android if that matter.
Thanks you and have a nice day.