argoproj/argo-workflows · error
key unsupported: git artifact does not have a key
Error message
key unsupported: git artifact does not have a key
What it means
GitArtifact.GetKey always returns this error: a git artifact is cloned wholesale from a repo and has no single storage key, unlike s3-style artifacts. Any code path that calls GetKey on a git artifact gets this unconditional rejection.
Source
Thrown at pkg/apis/workflow/v1alpha1/workflow_types.go:2984
// DisableSubmodules disables submodules during git clone
DisableSubmodules bool `json:"disableSubmodules,omitempty" protobuf:"varint,9,opt,name=disableSubmodules"`
// SingleBranch enables single branch clone, using the `branch` parameter
SingleBranch bool `json:"singleBranch,omitempty" protobuf:"varint,10,opt,name=singleBranch"`
// Branch is the branch to fetch when `SingleBranch` is enabled
Branch string `json:"branch,omitempty" protobuf:"bytes,11,opt,name=branch"`
// InsecureSkipTLS disables server certificate verification resulting in insecure HTTPS connections
InsecureSkipTLS bool `json:"insecureSkipTLS,omitempty" protobuf:"varint,12,opt,name=insecureSkipTLS"`
}
func (g *GitArtifact) HasLocation() bool {
return g != nil && g.Repo != ""
}
func (g *GitArtifact) GetKey() (string, error) {
return "", fmt.Errorf("key unsupported: git artifact does not have a key")
}
func (g *GitArtifact) SetKey(string) error {
return fmt.Errorf("key unsupported: cannot set key on git artifact")
}
func (g *GitArtifact) GetDepth() int {
if g == nil || g.Depth == nil {
return 0
}
return int(*g.Depth)
}
// ArtifactoryAuth describes the secret selectors required for authenticating to artifactory
type ArtifactoryAuth struct {
// UsernameSecret is the secret selector to the repository username
UsernameSecret *apiv1.SecretKeySelector `json:"usernameSecret,omitempty" protobuf:"bytes,1,opt,name=usernameSecret"`
View on GitHub (pinned to 35bff19146)
Solutions
- Do not request a key for git artifacts; use repo/revision instead
- Switch to an artifact type that supports keys (s3, gcs, azure, oss) if key-based access is required
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at pkg/apis/workflow/v1alpha1/workflow_types.go:2984 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of argoproj/argo-workflows@35bff19146 (2026-09-03).
Data as JSON: /api/errors/935ffb20b4f4309d.
Report an issue: GitHub.