{"record":{"id":"629997edc1b6c618","repo":"argoproj/argo-workflows","slug":"listobjects-is-currently-not-supported-for-this-ar-629997","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/raw/raw.go","lineNumber":53,"sourceCode":"}\n\n// Save is unsupported for raw output artifacts\nfunc (a *ArtifactDriver) Save(ctx context.Context, path string, artifact *wfv1.Artifact) error {\n\treturn errors.Errorf(errors.CodeBadRequest, \"Raw output artifacts unsupported\")\n}\n\n// SaveStream is unsupported for raw output artifacts\nfunc (a *ArtifactDriver) SaveStream(ctx context.Context, reader io.Reader, artifact *wfv1.Artifact) error {\n\treturn errors.Errorf(errors.CodeBadRequest, \"Raw output artifacts unsupported\")\n}\n\n// Delete is unsupported for raw output artifacts\nfunc (a *ArtifactDriver) Delete(ctx context.Context, s *wfv1.Artifact) error {\n\treturn common.ErrDeleteNotSupported\n}\n\nfunc (a *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 (a *ArtifactDriver) IsDirectory(ctx context.Context, artifact *wfv1.Artifact) (bool, error) {\n\treturn false, errors.New(errors.CodeNotImplemented, \"IsDirectory currently unimplemented for raw\")\n}\n","sourceCodeStart":35,"sourceCodeEnd":59,"githubUrl":"https://github.com/argoproj/argo-workflows/blob/35bff19146f5a6ada77468c431f2624bd577e373/workflow/artifacts/raw/raw.go#L35-L59","documentation":"The raw artifact driver (inline data stored in the workflow spec via artifacts[].raw.data) does not implement ListObjects; this stub always returns this error. ListObjects is only used for artifact directory listing features (e.g. recursive artifact dir operations), which are meaningless for inline raw content.","triggerScenarios":"Any code path invoking ListObjects on an artifact whose artifactDriver is raw — e.g. artifact GC / artifact directory traversal over a raw artifact, or user-facing operations that enumerate artifact keys against a raw artifact.","commonSituations":"Attempting artifact directory listing or key enumeration on inline raw artifacts; tooling that generically calls ListObjects on all artifact types; feature requests tracked upstream noting ListObjects is not yet implemented for raw.","solutions":["Don't call ListObjects for raw artifacts — raw artifacts hold inline data, not storage keys; read artifact.Raw.Data instead","If you need listable storage, switch the artifact to a real backend driver (s3, gcs, azure, etc.)","If you control the calling code, special-case raw artifacts and skip listing logic","Track/upgrade Argo Workflows versions — the message notes this may be implemented in a future version"],"exampleFix":"// before: generic listing for any artifact\nkeys, err := driver.ListObjects(ctx, artifact)\n// after: guard against unsupported drivers\nif artifact.Raw != nil {\n    return fmt.Errorf(\"raw artifacts have no keys; use artifact.Raw.Data\")\n}\nkeys, err := driver.ListObjects(ctx, artifact)","handlingStrategy":"type-guard","validationCode":"func supportsListObjects(a *wfv1.Artifact) bool {\n    return a != nil && a.Raw == nil // raw artifacts never support ListObjects\n}","typeGuard":"func isRawArtifact(a *wfv1.Artifact) bool {\n    return a != nil && a.Raw != nil\n}\n\n// usage\nif isRawArtifact(artifact) {\n    return errors.New(\"ListObjects not supported for raw artifacts; read Raw.Data instead\")\n}","tryCatchPattern":null,"preventionTips":["Never call ListObjects on raw artifacts; they carry inline data with no storage keys","Branch on artifact type (artifact.Raw != nil) before generic artifact-directory operations","Use a real storage backend (s3/gcs/azure) if you need key enumeration"],"tags":["artifact","raw","unsupported-operation"],"backgroundTag":"operation-not-supported","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"}