{"record":{"id":"7e4c7b886124c440","repo":"multica-ai/multica","slug":"leader-is-required-agent-name-or-id","errorCode":null,"errorMessage":"--leader is required (agent name or ID)","messagePattern":"--leader is required \\(agent name or ID\\)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"server/cmd/multica/cmd_squad.go","lineNumber":128,"sourceCode":"}\n\n// ── Create ──────────────────────────────────────────────────────────────────\n\nvar squadCreateCmd = &cobra.Command{\n\tUse:   \"create\",\n\tShort: \"Create a new squad\",\n\tArgs:  cobra.NoArgs,\n\tRunE:  runSquadCreate,\n}\n\nfunc runSquadCreate(cmd *cobra.Command, _ []string) error {\n\tname, _ := cmd.Flags().GetString(\"name\")\n\tif name == \"\" {\n\t\treturn fmt.Errorf(\"--name is required\")\n\t}\n\tleader, _ := cmd.Flags().GetString(\"leader\")\n\tif leader == \"\" {\n\t\treturn fmt.Errorf(\"--leader is required (agent name or ID)\")\n\t}\n\n\tclient, err := newAPIClient(cmd)\n\tif err != nil {\n\t\treturn err\n\t}\n\tctx, cancel := cli.APIContext(context.Background())\n\tdefer cancel()\n\n\tleaderID, err := resolveAgent(ctx, client, leader)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"resolve leader: %w\", err)\n\t}\n\n\tbody := map[string]any{\n\t\t\"name\":      name,\n\t\t\"leader_id\": leaderID,\n\t}","sourceCodeStart":110,"sourceCodeEnd":146,"githubUrl":"https://github.com/multica-ai/multica/blob/2c0912b6ec764b373d44eeea1e80f0d9f11ab417/server/cmd/multica/cmd_squad.go#L110-L146","documentation":"Client-side flag validation in `multica squads create`: the `--leader` flag (agent name or agent ID that will lead the squad) is mandatory and was empty. Validated before any client construction or agent resolution, so no API traffic occurs. Distinct from later failures: if a non-empty leader cannot be resolved, you get a different `resolve leader` error from resolveAgent.","triggerScenarios":"Running `multica squads create --name x` without --leader; empty LEADER variable in a script; leader value consisting only of whitespace.","commonSituations":"Automation provisioning squads before agents exist; unset env var in deployment config; user believes the server picks a default leader.","solutions":["Pass an existing agent's name or ID: `multica squads create --name x --leader agent-1`.","Verify the leader exists first: `multica agents list` — this also prevents the subsequent `resolve leader` error.","Fail fast on empty variables in scripts before invoking the CLI."],"exampleFix":"# before\nmultica squads create --name \"research squad\"\n\n# after\nmultica agents list > /dev/null   # confirm API access\nmultica squads create --name \"research squad\" --leader agent-1","handlingStrategy":"validation","validationCode":": \"${LEADER:?set LEADER to an agent name or ID}\"\nmultica agents list --output json | jq -e --arg l \"$LEADER\" 'any(.[]; .name==$l or .id==$l)' > /dev/null \\\n  || { echo \"leader agent not found: $LEADER\"; exit 1; }\nmultica squads create --name \"$SQUAD_NAME\" --leader \"$LEADER\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Create/verify the leader agent before creating the squad that references it.","Fail fast on empty leader variables in scripts.","Remember --leader accepts either an agent name or ID — resolve it via agents list when unsure."],"tags":["cli","validation","flags","squad","agent"],"backgroundTag":null,"analyzedSha":"2c0912b6ec764b373d44eeea1e80f0d9f11ab417","analyzedAt":"2026-08-15T13:25:18.241Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}