diff --git a/disperser/batcher/finalizer.go b/disperser/batcher/finalizer.go index 37ca5d719f..648886133c 100644 --- a/disperser/batcher/finalizer.go +++ b/disperser/batcher/finalizer.go @@ -122,8 +122,14 @@ func (f *finalizer) FinalizeBlobs(ctx context.Context) error { func (f *finalizer) updateBlobs(ctx context.Context, metadatas []*disperser.BlobMetadata, lastFinalBlock uint64) { for _, m := range metadatas { + // Check if metadata is nil before proceeding + if m == nil { + f.logger.Error("FinalizeBlobs: encountered nil metadata in loop") + continue + } stageTimer := time.Now() blobKey := m.GetBlobKey() + if m.BlobStatus != disperser.Confirmed { f.logger.Error("FinalizeBlobs: the blob retrieved by status Confirmed is actually", m.BlobStatus.String(), "blobKey", blobKey.String()) continue @@ -134,6 +140,12 @@ func (f *finalizer) updateBlobs(ctx context.Context, metadatas []*disperser.Blob continue } + // Additional checks for confirmationMetadata and its nested fields + if confirmationMetadata == nil || confirmationMetadata.ConfirmationInfo == nil { + f.logger.Error("FinalizeBlobs: received nil confirmationMetadata or ConfirmationInfo", "blobKey", blobKey.String()) + continue + } + // Leave as confirmed if the confirmation block is after the latest finalized block (not yet finalized) if uint64(confirmationMetadata.ConfirmationInfo.ConfirmationBlockNumber) > lastFinalBlock { continue