multica-ai/multica · warning

nothing to update; pass --name, --description, --icon, or --

Error message

nothing to update; pass --name, --description, --icon, or --option

What it means

Returned by `multica property update` when none of the mutators `--name`, `--description`, `--icon`, or `--option` were passed (checked via `cmd.Flags().Changed`). The command refuses to send an empty PATCH body, so this is pure client-side input validation.

Source

Thrown at server/cmd/multica/cmd_property.go:379

	body := map[string]any{}
	if cmd.Flags().Changed("name") {
		name, _ := cmd.Flags().GetString("name")
		body["name"] = name
	}
	if cmd.Flags().Changed("description") {
		description, _ := cmd.Flags().GetString("description")
		body["description"] = description
	}
	if cmd.Flags().Changed("icon") {
		icon, _ := cmd.Flags().GetString("icon")
		body["icon"] = icon
	}
	if cmd.Flags().Changed("option") {
		optionFlags, _ := cmd.Flags().GetStringArray("option")
		body["config"] = map[string]any{"options": parseOptionFlags(optionFlags, property.Config.Options)}
	}
	if len(body) == 0 {
		return fmt.Errorf("nothing to update; pass --name, --description, --icon, or --option")
	}

	var updated propertyDTO
	if err := client.PatchJSON(ctx, "/api/properties/"+property.ID, body, &updated); err != nil {
		return fmt.Errorf("update property: %w", err)
	}
	output, _ := cmd.Flags().GetString("output")
	if output == "json" {
		return cli.PrintJSON(os.Stdout, updated)
	}
	fmt.Fprintf(os.Stdout, "Property %q updated.\n", updated.Name)
	printPropertyTable([]propertyDTO{updated})
	return nil
}

func makePropertyArchiveRun(archive bool) func(*cobra.Command, []string) error {
	return func(cmd *cobra.Command, args []string) error {
		client, err := newAPIClient(cmd)

View on GitHub (pinned to 2c0912b6ec)

Solutions

  1. Add at least one mutation flag: `--name`, `--description`, `--icon`, or `--option`.
  2. If you intended only to archive/restore, use `multica property archive|unarchive` instead.
  3. In scripts, check that at least one of the four flags was appended before invoking the command.

Example fix

// before
multica property update Priority
// error: nothing to update; pass --name, --description, --icon, or --option

// after
multica property update Priority --description "Issue urgency"
Defensive patterns

Strategy: validation

Validate before calling

# bash: only invoke update when at least one mutator is set
[ -n "$NEW_NAME$NEW_DESC$NEW_ICON$NEW_OPTS" ] || { echo 'nothing to update'; exit 0; }

Type guard

func hasUpdateFlags(cmd *cobra.Command) bool {
    for _, f := range []string{"name", "description", "icon", "option"} {
        if cmd.Flags().Changed(f) {
            return true
        }
    }
    return false
}

Prevention

When it happens

Trigger: Running `multica property update <ref>` with no mutation flags, or with only the positional property reference; also when flags are set in a config file but not explicitly changed on the command line.

Common situations: User forgets which flags are mutable; scripts that conditionally build flag lists end up passing none; assuming `--name` refers to the target rather than the new name and omitting it.

Related errors


AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15). Data as JSON: /api/errors/5080223412b14f95. Report an issue: GitHub.