benbjohnson/litestream · error
invalid timestamp (expected RFC3339 or relative time like '5
Error message
invalid timestamp (expected RFC3339 or relative time like '5 minutes ago'): %s
What it means
parseTimeValue rejected a timestamp string: it is neither RFC3339(Nano) nor a relative expression dateparser understands (like '5 minutes ago'). This guards VFS URI / config timestamp options such as hydration or retention points-in-time.
Source
Thrown at vfs.go:2416
// parseTimeValue parses a timestamp string, trying RFC3339 first, then relative expressions.
func parseTimeValue(value string) (time.Time, error) {
// Try RFC3339Nano first (existing behavior)
if t, err := time.Parse(time.RFC3339Nano, value); err == nil {
return t, nil
}
// Try RFC3339 (without nanoseconds)
if t, err := time.Parse(time.RFC3339, value); err == nil {
return t, nil
}
// Fall back to dateparser for relative expressions
cfg := &dateparser.Configuration{
CurrentTime: time.Now().UTC(),
}
result, err := dateparser.Parse(cfg, value)
if err != nil {
return time.Time{}, fmt.Errorf("invalid timestamp (expected RFC3339 or relative time like '5 minutes ago'): %s", value)
}
if result.Time.IsZero() {
return time.Time{}, fmt.Errorf("could not parse time: %s", value)
}
return result.Time.UTC(), nil
}
// FileControl handles file control operations, specifically PRAGMA commands for time travel.
func (f *VFSFile) FileControl(op int, pragmaName string, pragmaValue *string) (*string, error) {
const SQLITE_FCNTL_PRAGMA = 14
if op != SQLITE_FCNTL_PRAGMA {
return nil, fmt.Errorf("unsupported file control op: %d", op)
}
name := strings.ToLower(pragmaName)
f.logger.Debug("file control", "pragma", name, "value", pragmaValue)View on GitHub (pinned to 4ed7a308f6)
Solutions
- Use RFC3339 like 2026-01-02T15:04:05Z
- Or a supported relative expression like '5 minutes ago'
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at vfs.go:2416 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/7b1af00099bbb1de.
Report an issue: GitHub.