juicedata/juicefs · error
json: %s
Error message
json: %s
What it means
Returned by kvMeta.doInit when the stored volume setting value cannot be JSON-unmarshalled into a Format. The persisted format record is corrupted or was written by an incompatible version, so the client refuses to operate on it.
Source
Thrown at pkg/meta/tkv.go:513
}
return limit < 0 || c < limit
})
return nil
}, 0)
return keys, vals, err
}
func (m *kvMeta) doInit(format *Format, force bool) error {
body, err := m.get(m.fmtKey("setting"))
if err != nil {
return err
}
if body != nil {
var old Format
err = json.Unmarshal(body, &old)
if err != nil {
return fmt.Errorf("json: %s", err)
}
if !old.DirStats && format.DirStats {
// remove dir stats as they are outdated
var keys [][]byte
prefix := m.fmtKey("U")
err := m.client.txn(Background(), func(tx *kvTxn) error {
tx.scan(prefix, nextKey(prefix), true, func(k, v []byte) bool {
if len(k) == 9 {
keys = append(keys, k)
}
return true
})
return nil
}, 0)
if err != nil {
return errors.Wrap(err, "scan dir stats")
}
err = m.txn(Background(), func(tx *kvTxn) error {View on GitHub (pinned to c9a67b23e8)
Solutions
- Check for mixed client versions writing the setting key
- Restore the format record from backup or re-format if the volume is expendable
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pkg/meta/tkv.go:513 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/23c913167ae7e368.
Report an issue: GitHub.