larksuite/cli · error
Metadata.Authorization identity %q is invalid
Error message
Metadata.Authorization identity %q is invalid
What it means
Compile-time guard in validateCommandMetadata: an authorization identity key is neither "user" nor "bot", the only supported identity kinds.
Source
Thrown at shortcuts/common/typed_compiler.go:122
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)
}
if err := validateScopeList(auth.RequiredScopes, fmt.Sprintf("Authorization.%s.RequiredScopes", identity)); err != nil {
return err
}
requiredScopes := make(map[string]struct{}, len(auth.RequiredScopes))
for _, scope := range auth.RequiredScopes {
requiredScopes[scope] = struct{}{}
}
for i, conditional := range auth.ConditionalScopes {
path := fmt.Sprintf("Authorization.%s.ConditionalScopes[%d]", identity, i)
if err := validateScopeList(conditional.Scopes, path); err != nil {
return err
}
if len(conditional.Scopes) == 0 {
return fmt.Errorf("%s.Scopes is empty", path)
}
for _, scope := range conditional.Scopes {
if _, alwaysRequired := requiredScopes[scope]; alwaysRequired {View on GitHub (pinned to 7fd6ef3c07)
Solutions
- Use identity keys 'user' and/or 'bot'
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at shortcuts/common/typed_compiler.go:122 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/a1e6570635a4a863.
Report an issue: GitHub.