diff --git a/pkg/tasks/check_consensus_sync_status/task.go b/pkg/tasks/check_consensus_sync_status/task.go index 0bde1b07..248ad82c 100644 --- a/pkg/tasks/check_consensus_sync_status/task.go +++ b/pkg/tasks/check_consensus_sync_status/task.go @@ -214,13 +214,21 @@ func (t *Task) processClientCheck(client *clients.PoolClient, syncStatus *rpc.Sy } func (t *Task) getClientInfo(client *clients.PoolClient, syncStatus *rpc.SyncStatus) *ClientInfo { - clientInfo := &ClientInfo{ + if syncStatus == nil { + // RPC failed — return skeletal info without dereferencing. + return &ClientInfo{ + Name: client.Config.Name, + Synchronizing: true, // assume unhealthy when status is unknown + SyncHead: 0, + SyncDistance: 0, + } + } + + return &ClientInfo{ Name: client.Config.Name, Synchronizing: syncStatus.IsSyncing, Optimistic: syncStatus.IsOptimistic, SyncHead: syncStatus.HeadSlot, SyncDistance: syncStatus.SyncDistance, } - - return clientInfo }