@VisibleForTesting
    static boolean isGoAwaySentException(Throwable cause, Http2Connection connection) {
        if (!(cause instanceof Http2Exception)) {
            return false;
        }

        final Http2Exception http2Exception = (Http2Exception) cause;
        if (http2Exception.error() != PROTOCOL_ERROR) {
            return false;
        }

        if (!connection.goAwaySent()) {
            return false;
        }

        final String msg = cause.getMessage();
        final Matcher matcher = IGNORABLE_HTTP2_ERROR_MESSAGE_GOAWAY.matcher(msg);
        if (!matcher.find()) {
            return false;
        }

        final int streamId = Integer.parseInt(matcher.group(1));
        final Endpoint<?> remote = connection.remote();
        return remote.isValidStreamId(streamId) && streamId > remote.lastStreamKnownByPeer();
    }
Determines whether the specified {@link Throwable} is raised by receiving a DATA frame with a stream ID
considered to be created after a {@code GOAWAY} is sent if the following conditions hold.
<ul>
    <li>A {@code GOAWAY} must have been sent by the local endpoint</li>
    <li>The {@code streamId} must identify a legitimate stream id for the remote endpoint to be
    creating</li>
    <li>{@code streamId} is greater than the Last Known Stream ID which was sent by the local endpoint
    in the last {@code GOAWAY} frame</li>
</ul>
core/src/main/java/com/linecorp/armeria/internal/common/AbstractHttp2ConnectionHandler.java