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

  1. Do not use key-based access with raw artifacts; the data is inline
  2. 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.