multica-ai/multica · error

nothing to update; pass --description, --description-stdin,

Error message

nothing to update; pass --description, --description-stdin, --description-file, or --clear

What it means

`multica user profile update` was invoked with none of the mutating flags: no --description (or its -stdin/-file variants) and no --clear. Because the command would otherwise send a no-op PATCH, it fails fast and lists the accepted flags.

Source

Thrown at server/cmd/multica/cmd_user.go:105

	return nil
}

func runUserProfileUpdate(cmd *cobra.Command, _ []string) error {
	// `--clear` is its own flag (not "pass an empty string") because cobra's
	// default value for a Changed("") flag would otherwise be ambiguous with
	// "user typed `--description ""`". Keep both forms supported — the inline
	// empty string is what someone scripting bash would reach for.
	clearFlag, _ := cmd.Flags().GetBool("clear")
	desc, hasDesc, err := resolveTextFlag(cmd, "description")
	if err != nil {
		return err
	}

	if clearFlag && hasDesc {
		return fmt.Errorf("--clear cannot be combined with --description / --description-stdin / --description-file")
	}
	if !clearFlag && !hasDesc && !cmd.Flags().Changed("description") {
		return fmt.Errorf("nothing to update; pass --description, --description-stdin, --description-file, or --clear")
	}

	if clearFlag {
		desc = ""
	}

	body := map[string]any{"profile_description": desc}

	client, err := newAPIClient(cmd)
	if err != nil {
		return err
	}

	ctx, cancel := cli.APIContext(context.Background())
	defer cancel()

	var me map[string]any
	if err := client.PatchJSON(ctx, "/api/me", body, &me); err != nil {

View on GitHub (pinned to 2c0912b6ec)

Solutions

  1. Pass exactly one of --description "text", --description-stdin (pipe text), --description-file path, or --clear.
  2. In scripts, guard before invoking: only run the command when at least one of those inputs is non-empty.
  3. Use `multica user profile get` if you only wanted to view the profile.

Example fix

# before
multica user profile update

# after
echo "bio text" | multica user profile update --description-stdin
Defensive patterns

Strategy: validation

Validate before calling

[ -n "$DESC" ] || [ "$CLEAR" = "true" ] || { echo 'nothing to update: pass a description or --clear'; exit 1; }

Prevention

When it happens

Trigger: Running bare `multica user profile update`, or passing only non-mutating flags like --output. The guard `!clearFlag && !hasDesc && !Changed("description")` covers both the explicit-empty-string case and the absent case.

Common situations: Scripts where the description variable expands to empty, or users exploring the command without arguments.

Related errors


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