{"record":{"id":"e8324e8996418815","repo":"argoproj/argo-workflows","slug":"artifact-storage-is-not-configured-see-the-docs-f","errorCode":null,"errorMessage":"artifact storage is not configured; see the docs for setup instructions: https://argo-workflows.readthedocs.io/en/latest/configure-artifact-repository/","messagePattern":"artifact storage is not configured; see the docs for setup instructions: https://argo-workflows\\.readthedocs\\.io/en/latest/configure-artifact-repository/","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/apis/workflow/v1alpha1/workflow_types.go","lineNumber":1445,"sourceCode":"\t\treturn a.Azure, nil\n\tcase a.Git != nil:\n\t\treturn a.Git, nil\n\tcase a.GCS != nil:\n\t\treturn a.GCS, nil\n\tcase a.HDFS != nil:\n\t\treturn a.HDFS, nil\n\tcase a.HTTP != nil:\n\t\treturn a.HTTP, nil\n\tcase a.OSS != nil:\n\t\treturn a.OSS, nil\n\tcase a.Raw != nil:\n\t\treturn a.Raw, nil\n\tcase a.S3 != nil:\n\t\treturn a.S3, nil\n\tcase a.Plugin != nil:\n\t\treturn a.Plugin, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"artifact storage is not configured; see the docs for setup instructions: https://argo-workflows.readthedocs.io/en/latest/configure-artifact-repository/\")\n\t}\n}\n\n// SetType sets the type of the artifact to type the argument.\n// Any existing value is deleted.\nfunc (a *ArtifactLocation) SetType(x ArtifactLocationType) error {\n\tswitch v := x.(type) {\n\tcase *ArtifactoryArtifact:\n\t\ta.Artifactory = &ArtifactoryArtifact{}\n\tcase *AzureArtifact:\n\t\ta.Azure = &AzureArtifact{}\n\tcase *GCSArtifact:\n\t\ta.GCS = &GCSArtifact{}\n\tcase *HDFSArtifact:\n\t\ta.HDFS = &HDFSArtifact{}\n\tcase *HTTPArtifact:\n\t\ta.HTTP = &HTTPArtifact{}\n\tcase *OSSArtifact:","sourceCodeStart":1427,"sourceCodeEnd":1463,"githubUrl":"https://github.com/argoproj/argo-workflows/blob/35bff19146f5a6ada77468c431f2624bd577e373/pkg/apis/workflow/v1alpha1/workflow_types.go#L1427-L1463","documentation":"ArtifactLocation.Get falls through to its default case when none of the known artifact backend fields (Artifactory, Azure, Git, GCS, HTTP, HDFS, OSS, Raw, S3, Plugin) is set. Argo cannot determine where artifacts are stored, so it returns this error pointing to the artifact repository configuration docs.","triggerScenarios":"Reading an artifact location whose union field is empty — e.g. artifactRepository not configured in the controller configmap and templates/artifacts carry no explicit location; calling Get() or GetKey() on such an ArtifactLocation.","commonSituations":"Installing Argo Workflows without configuring artifact storage in the workflow-controller-configmap; clusters where the artifact repository ConfigMap was deleted; artifacts declared without any backend field.","solutions":["Configure artifact storage in the workflow-controller ConfigMap (artifactRepository section, e.g. s3, gcs, azure)","Alternatively specify an explicit location per artifact in the workflow spec","Verify with `kubectl get cm workflow-controller-configmap -o yaml` that artifactRepository is set"],"exampleFix":"# workflow-controller-configmap\n# before\nmetadata:\n  name: workflow-controller-configmap\ndata: {}\n# after\ndata:\n  config: |\n    artifactRepository:\n      s3:\n        bucket: my-bucket\n        endpoint: s3.amazonaws.com","handlingStrategy":"validation","validationCode":"cm, _ := clientset.CoreV1().ConfigMaps(ns).Get(ctx, \"workflow-controller-configmap\", metav1.GetOptions{})\nif !strings.Contains(cm.Data[\"config\"], \"artifactRepository\") {\n    return errors.New(\"artifact repository is not configured on the cluster\")\n}","typeGuard":"func (a *ArtifactLocation) isConfigured() bool {\n    return a != nil && (a.S3 != nil || a.GCS != nil || a.Git != nil || a.HTTP != nil || a.Raw != nil || a.Azure != nil || a.Artifactory != nil || a.OSS != nil || a.HDFS != nil || a.Plugin != nil)\n}","tryCatchPattern":"_, err := loc.Get()\nif err != nil && strings.Contains(err.Error(), \"artifact storage is not configured\") {\n    return errors.New(\"cluster admin must configure artifactRepository per https://argo-workflows.readthedocs.io/en/latest/configure-artifact-repository/\")\n}","preventionTips":["Configure artifact storage during cluster installation","Add a startup check that artifactRepository is set","Use explicit artifact backends in templates when the cluster default may be missing"],"tags":["artifacts","configuration","artifact-repository"],"backgroundTag":"artifact-storage-not-configured","analyzedSha":"35bff19146f5a6ada77468c431f2624bd577e373","analyzedAt":"2026-09-03T19:34:35.908Z","contentChangedAt":"2026-09-03T19:34:35.908Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}