iishttp-posthttp3

HTTP/3 fallback on IIS webserver


We've enabled HTTP/3.0 on our IIS 10 webserver, but have noticed some strange behaviour. Sometimes we see (randomly?) a POST-request in the IIS logs that falls back to HTTP/2. The problem is that both POST-requests are being pushed to the server and is handled by our SaaS.

We managed to log these requests to illustrate this:

2022-12-22 12:07:02 W3SVC2 x.x.x.x POST /Warehouse - 443 usr y.y.y.y HTTP/3.0 
2022-12-22 12:07:02 W3SVC2 x.x.x.x POST /Warehouse - 443 usr y.y.y.y HTTP/2

This isn't linked to a specific client or browser, and most importantly it only happens sometimes even with the same client/browser. It seems to occur randomly.

Does anyone know what's going on and how we can resolve this? HTTP/3 is running great otherwise, it's just this random double post behaviour that's really causing a lot of issues.

Update (Jan 5th 23):

When looking at the HTTPERR logs, we're seeing a lot of these lines:

#Fields: date time c-ip c-port s-ip s-port cs-version cs-method cs-uri streamid streamid_ex sc-status s-siteid s-reason s-queuename transport
2023-01-04 11:01:48 81.83.115.108 64333 x.x.x.x 443 - - - - - - - - - QUIC
2023-01-04 11:01:48 78.21.155.116 61574 x.x.x.x 443 - - - - - - - - - QUIC
2023-01-04 11:01:48 84.197.211.73 60604 x.x.x.x 443 - - - - - - - - - QUIC

In the logs, we're also seeing the sc-win32-status is 995 for all failed requests. After this 995 error on the QUIC request, the POST-request is repeated in HTTP2. The webserver receives and handles both requests however.


Solution

  • I disabled HTTP/3 on the server and all the issues were resolved. The problem was that sometimes we got an SC-WIN-32 error status 995, which resulted in a new request through HTTP/2.

    In our application both the original HTTP/3 request that generated the error in the IIS log was processed, as well as the new HTTP/3, resulting in a double POST.

    We couldn't find the root cause of the SC-WIN-32 error 995, as the issue was sporadically. Disabling HTTP/3 resolved all issues. No more errors in the IIS logs and no double POST.

    At this moment I don't know the root cause of the problem, but the whole process has me avoiding using QUIC on Windows 2022 Server. Hopefully this will get resolved with a future update.