argoproj/argo-workflows · error
key unsupported: raw artifat does not have key
Error message
key unsupported: raw artifat does not have key
What it means
RawArtifact.GetKey is unconditionally unsupported: raw artifacts are inline string data with no storage key. Any key-based artifact lookup that reaches a raw artifact fails here. (Note the source's typo 'artifat'.)
Source
Thrown at pkg/apis/workflow/v1alpha1/workflow_types.go:3147
KrbRealm string `json:"krbRealm,omitempty" protobuf:"bytes,4,opt,name=krbRealm"`
// KrbConfig is the configmap selector for Kerberos config as string
// It must be set if either ccache or keytab is used.
KrbConfigConfigMap *apiv1.ConfigMapKeySelector `json:"krbConfigConfigMap,omitempty" protobuf:"bytes,5,opt,name=krbConfigConfigMap"`
// KrbServicePrincipalName is the principal name of Kerberos service
// It must be set if either ccache or keytab is used.
KrbServicePrincipalName string `json:"krbServicePrincipalName,omitempty" protobuf:"bytes,6,opt,name=krbServicePrincipalName"`
}
// RawArtifact allows raw string content to be placed as an artifact in a container
type RawArtifact struct {
// Data is the string contents of the artifact
Data string `json:"data" protobuf:"bytes,1,opt,name=data"`
}
func (r *RawArtifact) GetKey() (string, error) {
return "", fmt.Errorf("key unsupported: raw artifat does not have key")
}
func (r *RawArtifact) SetKey(string) error {
return fmt.Errorf("key unsupported: cannot set key for raw artifact")
}
func (r *RawArtifact) HasLocation() bool {
return r != nil
}
// Header indicate a key-value request header to be used when fetching artifacts over HTTP
type Header struct {
// Name is the header name
Name string `json:"name" protobuf:"bytes,1,opt,name=name"`
// Value is the literal value to use for the header
Value string `json:"value" protobuf:"bytes,2,opt,name=value"`
}View on GitHub (pinned to 35bff19146)
Solutions
- Do not use key-based access with raw artifacts; the data is inline
- Use s3/gcs/azure/oss artifacts when a key is needed
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at pkg/apis/workflow/v1alpha1/workflow_types.go:3147 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/05d90373ffb0e630.
Report an issue: GitHub.