benbjohnson/litestream · error
truncate buffer: %w
Error message
truncate buffer: %w
What it means
Wraps bufferFile.Truncate(0) failure in VFSFile.clearWriteBuffer, which resets the write-buffer file after a successful sync. Fires when the temporary buffer backing file cannot be truncated, leaving stale page data that would corrupt subsequent buffered writes.
Source
Thrown at vfs.go:2237
f.bufferNextOff += int64(len(data))
}
// Write page data (no header, just raw page data)
if _, err := f.bufferFile.WriteAt(data, writeOffset); err != nil {
return fmt.Errorf("write page to buffer: %w", err)
}
// Update dirty map with offset
f.dirty[pgno] = writeOffset
return nil
}
// clearWriteBuffer clears and resets the write buffer after successful sync.
func (f *VFSFile) clearWriteBuffer() error {
// Truncate file to zero
if err := f.bufferFile.Truncate(0); err != nil {
return fmt.Errorf("truncate buffer: %w", err)
}
// Reset next write offset
f.bufferNextOff = 0
return nil
}
func (f *VFSFile) FileSize() (size int64, err error) {
pageSize, err := f.pageSizeBytes()
if err != nil {
return 0, err
}
f.mu.Lock()
for pgno := range f.index {
if v := int64(pgno) * int64(pageSize); v > size {
size = vView on GitHub (pinned to 4ed7a308f6)
Solutions
- Check the health and permissions of the buffer file
- Restart the process to re-create the buffer if the file was deleted
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at vfs.go:2237 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of benbjohnson/litestream@4ed7a308f6 (2026-09-06).
Data as JSON: /api/errors/9d53b47e55aaf8eb.
Report an issue: GitHub.