为什么TiCDC选择同样的startTs,推送的增量扫数据是不一致的

感觉不太可能是gc的问题,原因如下:
我使用tikv client java 向 pd 发送 startTs 时间的cdc请求。
我实际的变更有handle 1,2,3,4的数据
第一次请求推送过来的增量扫数据有:
handle:1
handle:2
handle:4
第二次请求推送过来的增量扫数据有:
handle:1
handle:3
handle:4
如上例子所示,每次推送的增量扫数据都会丢失一些数据。如果是gc掉了,第二次就不应该又推送过来。
小白虚心求教,这种情况是bug还是?需要怎么排查?
非常感谢各位大佬的指导!