{"record":{"id":"bc0318f17b861dc4","repo":"juicedata/juicefs","slug":"message-d-is-not-supported","errorCode":null,"errorMessage":"message %d is not supported","messagePattern":"message (.+?) is not supported","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"pkg/meta/base.go","lineNumber":710,"sourceCode":"\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (r *baseMeta) OnMsg(mtype uint32, cb MsgCallback) {\n\tr.msgCallbacks.Lock()\n\tdefer r.msgCallbacks.Unlock()\n\tr.msgCallbacks.callbacks[mtype] = cb\n}\n\nfunc (r *baseMeta) newMsg(mid uint32, args ...interface{}) error {\n\tr.msgCallbacks.Lock()\n\tcb, ok := r.msgCallbacks.callbacks[mid]\n\tr.msgCallbacks.Unlock()\n\tif ok {\n\t\treturn cb(args...)\n\t}\n\treturn fmt.Errorf(\"message %d is not supported\", mid)\n}\n\nfunc (m *baseMeta) Load(checkVersion bool) (*Format, error) {\n\tbody, err := m.en.doLoad()\n\tif err == nil && len(body) == 0 {\n\t\terr = fmt.Errorf(\"database is not formatted, please run `juicefs format ...` first\")\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar format = new(Format)\n\tif err = json.Unmarshal(body, format); err != nil {\n\t\treturn nil, fmt.Errorf(\"json: %s\", err)\n\t}\n\tif checkVersion {\n\t\tif err = format.CheckVersion(); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"check version: %s\", err)\n\t\t}","sourceCodeStart":692,"sourceCodeEnd":728,"githubUrl":"https://github.com/juicedata/juicefs/blob/c9a67b23e8e08ec23ec331aa6f1675e2319e921c/pkg/meta/base.go#L692-L728","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"if err := onMsg(mid, args); err != nil { if strings.Contains(err.Error(), \"is not supported\") { log.Warnf(\"ignoring unsupported msg %d from peer\", mid) } }","preventionTips":["Run uniform JuiceFS versions across all clients","Avoid mixed feature-tag builds in the same cluster","Track upgrade notes for new message types"],"tags":["ipc","version-compatibility"],"backgroundTag":"unsupported-operation","analyzedSha":"c9a67b23e8e08ec23ec331aa6f1675e2319e921c","analyzedAt":"2026-09-06T17:55:48.476Z","contentChangedAt":"2026-09-06T17:55:48.476Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}