{"record":{"id":"aa2aaaee68018111","repo":"siyuan-note/siyuan","slug":"new-item-template-field-s-value-mode-is-invalid","errorCode":null,"errorMessage":"new item template field [%s] value mode is invalid","messagePattern":"new item template field \\[(.+?)\\] value mode is invalid","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"kernel/model/attribute_view_new_item.go","lineNumber":611,"sourceCode":"\t\t\t}\n\t\t\tisNotTime := true\n\t\t\tif nil != key.Date {\n\t\t\t\tisNotTime = !key.Date.FillSpecificTime\n\t\t\t}\n\t\t\tvalue = &av.Value{Type: av.KeyTypeDate, Date: av.NewFormattedValueDate(createdAt.UnixMilli(), 0, av.DateFormatNone, isNotTime, false)}\n\t\tcase av.NewItemFieldValueStatic:\n\t\t\tif nil == fieldValue.Value || fieldValue.Value.Type != key.Type {\n\t\t\t\treturn nil, fmt.Errorf(\"new item template field [%s] value is invalid\", keyID)\n\t\t\t}\n\t\t\tvalue = fieldValue.Value.Clone()\n\t\t\tif av.KeyTypeRelation == key.Type {\n\t\t\t\tfilterNewItemTemplateRelationValue(attrView, key, value, carrierBoxID)\n\t\t\t\tif nil == value.Relation || 0 == len(value.Relation.BlockIDs) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"new item template field [%s] value mode is invalid\", keyID)\n\t\t}\n\t\tret[keyID] = value\n\t}\n\treturn\n}\n\nfunc filterNewItemTemplateRelationValue(attrView *av.AttributeView, key *av.Key, value *av.Value,\n\tcarrierBoxID string) {\n\tif nil == key.Relation || nil == value.Relation {\n\t\treturn\n\t}\n\ttargetAv := attrView\n\tif key.Relation.AvID != attrView.ID {\n\t\tcontextFilter := &av.AttributeViewContextFilter{\n\t\t\tSpec: av.AttributeViewContextFilterSpec, KeyID: key.ID,\n\t\t}\n\t\ttargetAv, _ = resolveAttributeViewContextFilterTarget(attrView, contextFilter, carrierBoxID)\n\t}","sourceCodeStart":593,"sourceCodeEnd":629,"githubUrl":"https://github.com/siyuan-note/siyuan/blob/9f775e8a12daef8255556097396f9b2739078892/kernel/model/attribute_view_new_item.go#L593-L629","documentation":"resolveNewItemFieldValues supports only two value modes: NewItemFieldValueCurrentTime and NewItemFieldValueStatic. A FieldValues entry with any other Mode value (including 0/zero-value when the mode was never set) falls into the default branch and returns this error. It guards against unknown or unset mode enums in template configuration.","triggerScenarios":"createAttributeViewItem with a template FieldValues entry whose Mode is an unrecognized integer — typically omitted Mode (zero value) in hand-written or older template JSON, or a mode added in a newer version and read by an older kernel.","commonSituations":"Template JSON authored by hand or by a plugin that forgot to set Mode; forward-compatibility issue where a newer client wrote a mode value this kernel version does not know; copy-paste between template definitions losing the Mode field.","solutions":["Set Mode explicitly to av.NewItemFieldValueStatic or av.NewItemFieldValueCurrentValue on every FieldValues entry","Upgrade the kernel if the template was produced by a newer version introducing a new mode","Regenerate the template through the UI instead of hand-editing the .av JSON"],"exampleFix":"// before\n&av.NewItemFieldValue{Value: av.NewValueText(\"x\")} // Mode unset\n// after\n&av.NewItemFieldValue{Mode: av.NewItemFieldValueStatic, Value: av.NewValueText(\"x\")}","handlingStrategy":"validation","validationCode":"switch fv.Mode {\ncase av.NewItemFieldValueCurrentTime, av.NewItemFieldValueStatic:\n    // ok\ndefault:\n    return fmt.Errorf(\"unsupported field value mode for %s\", keyID)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Set Mode explicitly on every FieldValues entry; never rely on the zero value","Regenerate templates via the UI instead of hand-editing JSON","Keep kernel and clients on compatible versions so mode enums match"],"tags":["attribute-view","invalid-enum","go-kernel"],"backgroundTag":"invalid-enum-value","analyzedSha":"9f775e8a12daef8255556097396f9b2739078892","analyzedAt":"2026-09-19T03:17:15.984Z","contentChangedAt":"2026-09-19T03:17:15.984Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}