@@ -80,13 +80,21 @@ func (b *BlobUploader) UploadBlobToS3() {
8080 if err != nil {
8181 log .Error ("failed to construct constructBlobCodec payload " , "codecVersion" , codecVersion , "batch index" , dbBatch .Index , "err" , err )
8282 b .metrics .rollupBlobUploaderUploadToS3FailedTotal .Inc ()
83+ if updateErr := b .blobUploadOrm .InsertOrUpdateBlobUpload (b .ctx , dbBatch .Index , types .BlobStoragePlatformS3 , types .BlobUploadStatusFailed ); updateErr != nil {
84+ log .Error ("failed to update blob upload status to failed" , "batch index" , dbBatch .Index , "err" , updateErr )
85+ }
8386 return
8487 }
8588
8689 // calculate versioned blob hash
8790 versionedBlobHash , err := utils .CalculateVersionedBlobHash (* blob )
8891 if err != nil {
8992 log .Error ("failed to calculate versioned blob hash" , "batch index" , dbBatch .Index , "err" , err )
93+ b .metrics .rollupBlobUploaderUploadToS3FailedTotal .Inc ()
94+ // Update status to failed
95+ if updateErr := b .blobUploadOrm .InsertOrUpdateBlobUpload (b .ctx , dbBatch .Index , types .BlobStoragePlatformS3 , types .BlobUploadStatusFailed ); updateErr != nil {
96+ log .Error ("failed to update blob upload status to failed" , "batch index" , dbBatch .Index , "err" , updateErr )
97+ }
9098 return
9199 }
92100
@@ -137,7 +145,7 @@ func (b *BlobUploader) constructBlobCodec(dbBatch *orm.Batch) (*kzg4844.Blob, er
137145 for i , c := range dbChunks {
138146 blocks , getErr := b .l2BlockOrm .GetL2BlocksInRange (b .ctx , c .StartBlockNumber , c .EndBlockNumber )
139147 if getErr != nil {
140- return nil , fmt .Errorf ("failed to get blocks in range for batch %d: %w" , dbBatch .Index , err )
148+ return nil , fmt .Errorf ("failed to get blocks in range for batch %d: %w" , dbBatch .Index , getErr )
141149 }
142150 chunks [i ] = & encoding.Chunk {Blocks : blocks }
143151 }
@@ -152,10 +160,6 @@ func (b *BlobUploader) constructBlobCodec(dbBatch *orm.Batch) (*kzg4844.Blob, er
152160 case encoding .CodecV7 :
153161 var batchBlocks []* encoding.Block
154162 for _ , dbChunk := range dbChunks {
155- if dbBatch .CodecVersion != dbChunk .CodecVersion {
156- return nil , fmt .Errorf ("batch codec version is different from chunk codec version, batch index: %d, chunk index: %d, batch codec version: %d, chunk codec version: %d" , dbBatch .Index , dbChunk .Index , dbBatch .CodecVersion , dbChunk .CodecVersion )
157- }
158-
159163 blocks , err := b .l2BlockOrm .GetL2BlocksInRange (b .ctx , dbChunk .StartBlockNumber , dbChunk .EndBlockNumber )
160164 if err != nil {
161165 return nil , fmt .Errorf ("failed to get blocks in range for batch %d: %w" , dbBatch .Index , err )
@@ -173,7 +177,7 @@ func (b *BlobUploader) constructBlobCodec(dbBatch *orm.Batch) (*kzg4844.Blob, er
173177 }
174178 default :
175179 log .Error ("unsupported codec version in UploadBlobToS3" , "codecVersion" , codecVersion , "batch index" , dbBatch .Index )
176- return nil , fmt .Errorf ("unsupported codec version, batch index: %d, batch codec version: %d, %w " , dbBatch .Index , codecVersion , err )
180+ return nil , fmt .Errorf ("unsupported codec version, batch index: %d, batch codec version: %d" , dbBatch .Index , codecVersion )
177181 }
178182
179183 codec , err := encoding .CodecFromVersion (codecVersion )
0 commit comments