{"record":{"id":"bf2533fb769171c5","repo":"siyuan-note/siyuan","slug":"av-is-required","errorCode":null,"errorMessage":"--av is required","messagePattern":"--av is required","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"kernel/cli/cmd/database.go","lineNumber":61,"sourceCode":"\tRunE: func(cmd *cobra.Command, args []string) error {\n\t\tresults := model.SearchAttributeView(args[0], nil, \"\", \"\")\n\t\tswitch outputFormat {\n\t\tcase \"json\":\n\t\t\treturn printJSON(results)\n\t\tdefault:\n\t\t\tprintAvSearchResults(results)\n\t\t}\n\t\treturn nil\n\t},\n}\n\nvar databaseGetCmd = &cobra.Command{\n\tUse:   \"get --av <avID>\",\n\tShort: \"Get database content\",\n\tRunE: func(cmd *cobra.Command, args []string) error {\n\t\tavID, _ := cmd.Flags().GetString(\"av\")\n\t\tif avID == \"\" {\n\t\t\treturn fmt.Errorf(\"--av is required\")\n\t\t}\n\t\tattrView := model.GetAttributeView(avID)\n\t\tif attrView == nil {\n\t\t\treturn fmt.Errorf(\"database not found: %s\", avID)\n\t\t}\n\t\tswitch outputFormat {\n\t\tcase \"json\":\n\t\t\treturn printJSON(model.NewAttributeViewMetadata(attrView))\n\t\tdefault:\n\t\t\tprintDatabaseMetadata(attrView)\n\t\t}\n\t\treturn nil\n\t},\n}\n\nvar databaseRenderCmd = &cobra.Command{\n\tUse:   \"render --av <avID>\",\n\tShort: \"Render database data\",","sourceCodeStart":43,"sourceCodeEnd":79,"githubUrl":"https://github.com/siyuan-note/siyuan/blob/251596fc0de2f9528c00c224252fd073a99973f4/kernel/cli/cmd/database.go#L43-L79","documentation":"Thrown by `database get` when the `--av` flag (attribute-view/database ID) is empty. The command loads an AttributeView via `model.GetAttributeView(avID)` and prints metadata; without an ID there is nothing to fetch.","triggerScenarios":"Running `siyuan database get` with no `--av`, or `--av \"\"`, or referencing an unset variable.","commonSituations":"Confusing the database block ID with the AV ID, or not knowing where the AV ID comes from (it is the database block's data ID).","solutions":["Locate the database block ID (e.g. via `siyuan block get` on the doc containing it) and pass it as `--av`","Run `siyuan database get --av <avID> --output json` to inspect metadata","Confirm the flag is `--av`, not `--id` or `--database`"],"exampleFix":"// before\nsiyuan database get\n\n// after\nsiyuan database get --av 20240101000000-av12345","handlingStrategy":"validation","validationCode":"if strings.TrimSpace(avID) == \"\" {\n    log.Fatal(\"--av is required\")\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Distinguish the AV (database) ID from the wrapping document block ID","Cache resolved AV IDs to avoid repeated lookups"],"tags":["cli","database","attribute-view","flag-validation","argument-required"],"backgroundTag":null,"analyzedSha":"251596fc0de2f9528c00c224252fd073a99973f4","analyzedAt":"2026-08-12T21:18:37.123Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}