TsgcHTTP3Server › Methods › QPACKBlockedResumed
Reports how many request header sections were blocked on QPACK inserts and later resumed.
function QPACKBlockedResumed: Integer;
The total number of request field sections, summed across every current connection, that were held waiting for QPACK encoder-stream instructions and afterwards decoded and dispatched. 0 when no request has ever blocked. (Integer)
A QPACK encoder may reference dynamic-table entries in a header section before the instructions that create those entries have arrived, because the encoder stream and the request stream are separate QUIC streams with no ordering guarantee between them. RFC 9204 section 2.2.1 calls such a request stream blocked. Rather than failing, the server buffers the header section (and any DATA or trailer frames that follow it on the same stream), waits for the client's QPACK encoder stream to deliver the missing inserts, then decodes the headers and replays the queued frames in order, so OnH3Request still sees a normal, correctly ordered request.
QPACKBlockedResumed counts how many times that recovery path completed. Unlike QPACKDynamicInserts, it is a sum across connections, since it measures total occurrences rather than the depth reached on one connection.
This is a diagnostic counter for verification, tests and logging; it does not affect the protocol. A non-zero value is normal against clients that use aggressive dynamic-table encoding, and simply confirms the blocked-stream handling is working. It never grows on clients that do not use the QPACK dynamic table.
This member is currently available in the Delphi/C++Builder implementation only.
Log('QPACK blocked-then-resumed sections: ' +
IntToStr(oServer.QPACKBlockedResumed));