hyperledger/fabric · error
error truncating the block file [%s]
Error message
error truncating the block file [%s]
What it means
Returned by rollbackBlockFiles when truncating the target block file to the rollback boundary fails at the OS level (I/O error, permissions). The higher-numbered files were already removed; this is the final in-place truncation step failing.
Source
Thrown at common/ledger/blkstorage/rollback.go:204
logger.Infof("Removing all block files with suffixNum in the range [%d] to [%d]",
targetFileNum+1, lastFileNum)
for n := lastFileNum; n >= targetFileNum+1; n-- {
filepath := deriveBlockfilePath(r.ledgerDir, n)
if err := os.Remove(filepath); err != nil {
return errors.Wrapf(err, "error removing the block file [%s]", filepath)
}
}
logger.Infof("Truncating block file [%d] to the end boundary of block number [%d]", targetFileNum, r.targetBlockNum)
endOffset, err := calculateEndOffSet(r.ledgerDir, targetFileNum, r.targetBlockNum)
if err != nil {
return err
}
filePath := deriveBlockfilePath(r.ledgerDir, targetFileNum)
if err := os.Truncate(filePath, endOffset); err != nil {
return errors.Wrapf(err, "error truncating the block file [%s]", filePath)
}
return nil
}
func calculateEndOffSet(ledgerDir string, targetBlkFileNum int, blockNum uint64) (int64, error) {
stream, err := newBlockfileStream(ledgerDir, targetBlkFileNum, 0)
if err != nil {
return 0, err
}
defer stream.close()
for {
blockBytes, err := stream.nextBlockBytes()
if err != nil {
return 0, err
}
blockInfo, err := extractSerializedBlockInfo(blockBytes)
if err != nil {View on GitHub (pinned to 2736b63f8f)
Solutions
- Check the wrapped error for the OS cause (permissions, disk, read-only FS)
- Verify filesystem health and rerun the rollback with the peer down
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at common/ledger/blkstorage/rollback.go:204 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of hyperledger/fabric@2736b63f8f (2026-09-04).
Data as JSON: /api/errors/a0e3172c83e00867.
Report an issue: GitHub.