juicedata/juicefs · error

no available cache dir

Error message

no available cache dir

What it means

Returned by cacheManager.load when no cache store is currently available — every configured cache directory failed health checks or is in a backoff state, so there is nowhere to read a cached block from. Reads then fail at the cache layer and fall back to object storage by the caller's design.

Source

Thrown at pkg/chunk/cache_manager.go:264

}

func (m *cacheManager) cache(key string, p *Page, force, dropCache bool) {
	store := m.getStore(key)
	if store != nil {
		store.cache(key, p, force, dropCache)
	}
}

type ReadCloser interface {
	// io.Reader
	io.ReaderAt
	io.Closer
}

func (m *cacheManager) load(key string) (ReadCloser, error) {
	store := m.getStore(key)
	if store == nil {
		return nil, errors.New("no available cache dir")
	}
	r, err := store.load(key)
	if err == errNotCached {
		legacy := m.getStoreLegacy(key)
		if legacy != store && legacy != nil {
			r, err = legacy.load(key)
		}
	}
	return r, err
}

func (m *cacheManager) exist(key string) (string, bool) {
	store := m.getStore(key)
	if store == nil {
		return "", false
	}
	loc := store.dir
	existed, err := store.exist(key)

View on GitHub (pinned to c9a67b23e8)

Solutions

  1. Check cache dir free space, permissions, and errors in the mount log
  2. Ensure --cache-dir points to a writable, healthy directory and enough free space remains (free-space ratio)
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at pkg/chunk/cache_manager.go:264 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06). Data as JSON: /api/errors/b8f95cf9b7e93650. Report an issue: GitHub.