juicedata/juicefs · warning
message %d is not supported
Error message
message %d is not supported
What it means
baseMeta.onMsg dispatches internal control messages by ID to registered callbacks; when no callback is registered for the given message ID, this error is returned. It means this client build does not support the received message type, often due to mixed client versions or disabled features.
Source
Thrown at pkg/meta/base.go:710
}
}
}
}
func (r *baseMeta) OnMsg(mtype uint32, cb MsgCallback) {
r.msgCallbacks.Lock()
defer r.msgCallbacks.Unlock()
r.msgCallbacks.callbacks[mtype] = cb
}
func (r *baseMeta) newMsg(mid uint32, args ...interface{}) error {
r.msgCallbacks.Lock()
cb, ok := r.msgCallbacks.callbacks[mid]
r.msgCallbacks.Unlock()
if ok {
return cb(args...)
}
return fmt.Errorf("message %d is not supported", mid)
}
func (m *baseMeta) Load(checkVersion bool) (*Format, error) {
body, err := m.en.doLoad()
if err == nil && len(body) == 0 {
err = fmt.Errorf("database is not formatted, please run `juicefs format ...` first")
}
if err != nil {
return nil, err
}
var format = new(Format)
if err = json.Unmarshal(body, format); err != nil {
return nil, fmt.Errorf("json: %s", err)
}
if checkVersion {
if err = format.CheckVersion(); err != nil {
return nil, fmt.Errorf("check version: %s", err)
}View on GitHub (pinned to c9a67b23e8)
Solutions
- Upgrade all clients to a uniform, recent JuiceFS version
- Check which message ID is unsupported and whether the sending client's feature set should be disabled
- Ensure no session with mismatched feature flags is connected to the same metadata engine
Defensive patterns
Strategy: retry
Try / catch
if err := onMsg(mid, args); err != nil { if strings.Contains(err.Error(), "is not supported") { log.Warnf("ignoring unsupported msg %d from peer", mid) } } Prevention
- Run uniform JuiceFS versions across all clients
- Avoid mixed feature-tag builds in the same cluster
- Track upgrade notes for new message types
When it happens
Trigger: A message with an unregistered mid arrives while the client is connected (e.g. another newer client broadcast a message type this one doesn't know); a feature-gated message (behind build tags or version check) is delivered to a client lacking support.
Common situations: Mixed-version clusters where newer clients send messages older clients don't recognize; clients built without certain feature tags receiving messages from feature-enabled nodes.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- load worker config: %s
- failed to create message by type %d: %w
- check version: %s
- unknown quota type: %d
AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06).
Data as JSON: /api/errors/bc0318f17b861dc4.
Report an issue: GitHub.