Find which outstanding IBC packets still need delivery

A source commitment can remain after the destination receives a packet and before its acknowledgement returns. Filter candidate sequences on the destination before attributing delay to delivery.

Ask the receiving channel about a known subset

Use a TLS gRPC endpoint with reflection on the destination in DST. Replace the example numbers with outstanding source commitments and use the destination-side port and channel.

grpcurl -d '{"portId":"transfer","channelId":"channel-19","packetCommitmentSequences":["8","9","10"]}' "$DST" ibc.core.channel.v1.Query/UnreceivedPackets

For an unordered channel, if the candidate list is 8, 9, 10 and the response lists only 9, the destination lacks a receipt for 9 at the query height. The missing source acknowledgement for 8 or 10 needs a separate investigation.

Preserve the packet and timeout context

Record both local channel identifiers, sequence and query height. Before relaying, check the packet’s timeout conditions and client status. This query selects work candidates and does not return the packet payload or proof required for submission. github.com ibc-go Query API