larksuite/cli · error

Metadata.Command is required

Error message

Metadata.Command is required

What it means

Compile-time guard in validateCommandMetadata: the command definition's Metadata.Service is empty. Every typed shortcut must name its owning service segment.

Source

Thrown at shortcuts/common/typed_compiler.go:98

		}
		identities[identity] = authorization
	}
	metadata.Authorization.Identities = identities
	metadata.Authorization.IdentityOrder = append([]typedIdentity(nil), metadata.Authorization.IdentityOrder...)
	return metadata
}

func validateCommandMetadata(metadata typedCommandMetadata) error {
	service := strings.TrimSpace(string(metadata.Service))
	if service == "" {
		return fmt.Errorf("Metadata.Service is required")
	}
	if service != string(metadata.Service) || strings.ContainsAny(service, " \t\r\n/") {
		return fmt.Errorf("Metadata.Service %q must be one trimmed command segment", metadata.Service)
	}
	command := strings.TrimSpace(metadata.Command)
	if command == "" {
		return fmt.Errorf("Metadata.Command is required")
	}
	if command != metadata.Command || strings.ContainsAny(command, " \t\r\n/") {
		return fmt.Errorf("Metadata.Command %q must be one trimmed command segment", metadata.Command)
	}
	if !strings.HasPrefix(command, "+") {
		return fmt.Errorf("Metadata.Command %q must start with '+'", metadata.Command)
	}
	if command == "+" {
		return fmt.Errorf("Metadata.Command must contain a name after '+'")
	}
	if strings.TrimSpace(metadata.Description) == "" {
		return fmt.Errorf("Metadata.Description is required")
	}
	switch metadata.Risk {
	case typedRiskRead, typedRiskWrite, typedRiskHighRiskWrite:
	default:
		return fmt.Errorf("Metadata.Risk %q is invalid", metadata.Risk)
	}

View on GitHub (pinned to 7fd6ef3c07)

Solutions

  1. Set Metadata.Command, e.g. "+send"
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at shortcuts/common/typed_compiler.go:98 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of larksuite/cli@7fd6ef3c07 (2026-09-04). Data as JSON: /api/errors/00b8bf080861952f. Report an issue: GitHub.