{"record":{"id":"688bf13aa205f3e8","repo":"argoproj/argo-workflows","slug":"listobjects-is-currently-not-supported-for-this-ar-688bf1","errorCode":null,"errorMessage":"ListObjects is currently not supported for this artifact type, but it will be in a future version","messagePattern":"ListObjects is currently not supported for this artifact type, but it will be in a future version","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"workflow/artifacts/hdfs/hdfs.go","lineNumber":250,"sourceCode":"\t}\n\n\treturn hdfscli.CopyToRemote(path, driver.Path)\n}\n\n// SaveStream saves an artifact from an io.Reader to HDFS compliant storage\nfunc (driver *ArtifactDriver) SaveStream(ctx context.Context, reader io.Reader, outputArtifact *wfv1.Artifact) error {\n\treturn common.SaveStreamViaTempFile(reader, \"hdfs-upload-*\", func(path string) error {\n\t\treturn driver.Save(ctx, path, outputArtifact)\n\t})\n}\n\n// Delete is unsupported for the hdfs artifacts\nfunc (driver *ArtifactDriver) Delete(ctx context.Context, s *wfv1.Artifact) error {\n\treturn common.ErrDeleteNotSupported\n}\n\nfunc (driver *ArtifactDriver) ListObjects(ctx context.Context, artifact *wfv1.Artifact) ([]string, error) {\n\treturn nil, fmt.Errorf(\"ListObjects is currently not supported for this artifact type, but it will be in a future version\")\n}\n\nfunc (driver *ArtifactDriver) IsDirectory(ctx context.Context, artifact *wfv1.Artifact) (bool, error) {\n\treturn false, errors.New(errors.CodeNotImplemented, \"IsDirectory currently unimplemented for HDFS\")\n}\n","sourceCodeStart":232,"sourceCodeEnd":256,"githubUrl":"https://github.com/argoproj/argo-workflows/blob/35bff19146f5a6ada77468c431f2624bd577e373/workflow/artifacts/hdfs/hdfs.go#L232-L256","documentation":"The HDFS artifact driver does not implement ListObjects; it returns a placeholder error promising possible future support. The method exists only to satisfy the ArtifactDriver interface. Any code path that enumerates artifacts by prefix for HDFS will fail immediately with this message.","triggerScenarios":"Any controller/server/CLI feature that lists artifacts of an HDFS artifact — e.g. artifact repository GC or recursive artifact deletion calling ListObjects(ctx, artifact) on an artifact whose HDFS driver is selected.","commonSituations":"Running workflows that rely on artifact listing/garbage collection features against HDFS artifact repositories; users of S3 features switching to HDFS discover list-dependent features are unavailable.","solutions":["Avoid list-based artifact features for HDFS artifacts; delete/manage HDFS artifacts manually via hadoop fs commands.","Use a backend that implements ListObjects (S3, GCS, Azure, OSS) if you need artifact enumeration.","Implement ListObjects in workflow/artifacts/hdfs/hdfs.go using the hdfs client's ReadDir if you control the fork.","If a workflow fails with this, check the artifact type in your spec — you likely configured `hdfs:` where you meant a listing-capable backend."],"exampleFix":"// before (workflow spec using HDFS for a list-dependent feature)\narchiveLogs: true  # with HDFS archive + GC\n// after: use S3 for artifacts that need listing/GC\ns3:\n  bucket: my-bucket\n  key: path/to/artifact","handlingStrategy":"fallback","validationCode":"func supportsListObjects(artifactType string) bool {\n\tswitch artifactType {\n\tcase \"s3\", \"gcs\", \"azure\", \"oss\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}","typeGuard":null,"tryCatchPattern":"keys, err := driver.ListObjects(ctx, art)\nif err != nil && strings.Contains(err.Error(), \"ListObjects is currently not supported\") {\n\t// fall back to manual hadoop fs -ls management or skip GC\n}","preventionTips":["Use list-capable backends (S3/GCS/Azure/OSS) for features needing artifact enumeration","Do not enable artifact GC/archive listing features on HDFS artifact repos","Document in your platform that HDFS artifacts must be managed via hadoop fs commands"],"tags":["hdfs","artifact","not-implemented","listobjects"],"backgroundTag":"artifact-listobjects-unsupported","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"}