{"record":{"id":"5a61f3e2a3bdb19a","repo":"multica-ai/multica","slug":"name-is-required-5a61f3","errorCode":null,"errorMessage":"--name is required","messagePattern":"--name is required","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/cmd/multica/cmd_agent.go","lineNumber":639,"sourceCode":"\t\ttargets = append(targets, map[string]any{\"target_type\": \"workspace\"})\n\t}\n\tif members, _ := cmd.Flags().GetStringSlice(\"public-to-member\"); len(members) > 0 {\n\t\tfor _, m := range members {\n\t\t\ttargets = append(targets, map[string]any{\"target_type\": \"member\", \"target_id\": m})\n\t\t}\n\t}\n\tbody[\"invocation_targets\"] = targets\n}\n\nfunc runAgentCreate(cmd *cobra.Command, _ []string) error {\n\tclient, err := newAPIClient(cmd)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tname, _ := cmd.Flags().GetString(\"name\")\n\tif name == \"\" {\n\t\treturn fmt.Errorf(\"--name is required\")\n\t}\n\truntimeID, _ := cmd.Flags().GetString(\"runtime-id\")\n\tif runtimeID == \"\" {\n\t\treturn fmt.Errorf(\"--runtime-id is required\")\n\t}\n\n\tbody := map[string]any{\n\t\t\"name\":       name,\n\t\t\"runtime_id\": runtimeID,\n\t}\n\tif v, _ := cmd.Flags().GetString(\"description\"); v != \"\" {\n\t\tbody[\"description\"] = v\n\t}\n\tif v, _ := cmd.Flags().GetString(\"instructions\"); v != \"\" {\n\t\tbody[\"instructions\"] = v\n\t}\n\tif cmd.Flags().Changed(\"runtime-config\") {\n\t\tv, _ := cmd.Flags().GetString(\"runtime-config\")","sourceCodeStart":621,"sourceCodeEnd":657,"githubUrl":"https://github.com/multica-ai/multica/blob/2c0912b6ec764b373d44eeea1e80f0d9f11ab417/server/cmd/multica/cmd_agent.go#L621-L657","documentation":"runAgentCreate validates the required --name flag before building the POST /api/agents body and fails fast when it is empty. The check is a plain presence test — any non-empty string passes, the server does semantic validation later.","triggerScenarios":"Running `multica agent create` without --name, or with --name \"\" / only-whitespace that cobra still delivers as empty.","commonSituations":"Scripted creation loops where the name variable is conditionally empty; shell quoting mistakes that swallow the value; interactive use forgetting the flag.","solutions":["Pass a non-empty --name on the command line.","In scripts, guard the variable first and skip/error before invoking the CLI.","Check for shell quoting issues like --name $NAME with NAME unset (use \"$NAME\")."],"exampleFix":"# before\nmultica agent create --runtime-id rt_cli\n\n# after\nmultica agent create --name \"code-reviewer\" --runtime-id rt_cli","handlingStrategy":"validation","validationCode":"name := strings.TrimSpace(nameFlag)\nif name == \"\" {\n    return fmt.Errorf(\"--name is required\")\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["In scripts, guard required variables before invoking the CLI and fail with context.","Quote flag values (\"$NAME\") so empty variables are visible instead of silently dropped.","Consider marking flags required in cobra (MarkFlagRequired) so usage help fires first."],"tags":["go","cli","validation","agents"],"backgroundTag":null,"analyzedSha":"2c0912b6ec764b373d44eeea1e80f0d9f11ab417","analyzedAt":"2026-08-15T13:25:18.241Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}