diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c
index 1b90d4715b3c1520410c6e6c6a2cf0fd35e607d4..26649132fd619227e864f34202c94dbc9b01f22d 100644
--- a/src/core/transport/chttp2_transport.c
+++ b/src/core/transport/chttp2_transport.c
@@ -1505,6 +1505,7 @@ static int process_read(transport *t, gpr_slice slice) {
                   CLIENT_CONNECT_STRING[t->deframe_state],
                   (int)(gpr_uint8)CLIENT_CONNECT_STRING[t->deframe_state], *cur,
                   (int)*cur, t->deframe_state);
+          drop_connection(t);
           return 0;
         }
         ++cur;