JuliusBrussee/caveman · error

ccr get: %w

Error message

ccr get: %w

What it means

Error "ccr get: %w" thrown in JuliusBrussee/caveman.

Source

Thrown at engine/ccr/store_sqlite.go:464

	return strings.Contains(text, "database or disk is full") || strings.Contains(text, "sqlite_full")
}

// Get returns the exact original bytes for a handle, or ErrNotFound.
func (s *Store) Get(handle string) ([]byte, error) {
	if strings.HasPrefix(handle, "ccr_obj_") {
		obj, err := s.GetObject(handle)
		if err != nil {
			return nil, err
		}
		return append([]byte(nil), obj.Data...), nil
	}
	var original []byte
	row := s.db.QueryRow(`SELECT original FROM recoveries WHERE handle = ?`, handle)
	switch err := row.Scan(&original); {
	case errors.Is(err, sql.ErrNoRows):
		return nil, ErrNotFound
	case err != nil:
		return nil, fmt.Errorf("ccr get: %w", err)
	}
	return original, nil
}

// GetMetadata returns optional compressor metadata stored with a handle. A known
// handle with no metadata returns nil, nil; an unknown handle returns ErrNotFound.
func (s *Store) GetMetadata(handle string) ([]byte, error) {
	if strings.HasPrefix(handle, "ccr_obj_") {
		if _, err := s.GetObject(handle); err != nil {
			return nil, err
		}
		return nil, nil
	}
	var metadata []byte
	row := s.db.QueryRow(`SELECT metadata FROM recoveries WHERE handle = ?`, handle)
	switch err := row.Scan(&metadata); {
	case errors.Is(err, sql.ErrNoRows):
		return nil, ErrNotFound

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. Fix the underlying ccr get error and retry.

When it happens

Trigger: Thrown at engine/ccr/store_sqlite.go:464 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15). Data as JSON: /api/errors/d4dcb5ccf0a44417. Report an issue: GitHub.