Triage an inactive IBC Tendermint client

Both chains can produce blocks while a particular IBC light client can no longer verify fresh packets. The client status belongs to the chain hosting that client.

Query each direction independently

Set HOST to the verifying chain’s TLS gRPC endpoint with reflection and replace the example client ID. Check the reverse-direction client on the other chain with its own local ID.

grpcurl -d '{"clientId":"07-tendermint-0"}' "$HOST" ibc.core.client.v1.Query/ClientStatus

An Expired response on one side points to a trust-period problem for that client. A Frozen result calls for investigating misbehaviour or recovery history. Capture the exact status, chain time and client identifier before planning remediation.

Avoid assuming an update will restore service

An ordinary header update may be unavailable for an expired or frozen client. Determine the recovery mechanism supported by the chain and its IBC version. Active status alone also cannot confirm a packet is still within its own timeout. github.com ibc-go Query API