larksuite/cli · error
Metadata.Command %q must start with '+'
Error message
Metadata.Command %q must start with '+'
What it means
Compile-time guard in validateCommandMetadata: Metadata.Command must begin with '+' to denote a shortcut command path.
Source
Thrown at shortcuts/common/typed_compiler.go:104
}
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)
}
if len(metadata.Authorization.Identities) == 0 {
return fmt.Errorf("Metadata.Authorization.Identities must declare at least one identity")
}
for identity, auth := range metadata.Authorization.Identities {
if identity != typedIdentityUser && identity != typedIdentityBot {
return fmt.Errorf("Metadata.Authorization identity %q is invalid", identity)View on GitHub (pinned to 7fd6ef3c07)
Solutions
- Prefix the command name with '+'
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at shortcuts/common/typed_compiler.go:104 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/5d4c374b49aee0ce.
Report an issue: GitHub.