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 = v

View on GitHub (pinned to 4ed7a308f6)

Solutions

  1. Check the health and permissions of the buffer file
  2. 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.