argoproj/argo-workflows · warning
CodeNotImplemented
CodeNotImplemented
Error message
IsDirectory currently unimplemented for http
What it means
The HTTP artifact driver does not implement IsDirectory; calling it always returns a CodeNotImplemented error. HTTP artifacts are single objects (no listing/directory semantics), so Argo cannot determine directory-ness for them.
Source
Thrown at workflow/artifacts/http/http.go:193
}
req, url, err := h.buildPutRequest(ctx, reader, outputArtifact)
if err != nil {
return err
}
return h.doPutRequest(req, url, "saving stream")
}
// Delete is unsupported for the http artifacts
func (h *ArtifactDriver) Delete(ctx context.Context, s *wfv1.Artifact) error {
return common.ErrDeleteNotSupported
}
func (h *ArtifactDriver) ListObjects(ctx context.Context, artifact *wfv1.Artifact) ([]string, error) {
return nil, fmt.Errorf("ListObjects is currently not supported for this artifact type, but it will be in a future version")
}
func (h *ArtifactDriver) IsDirectory(ctx context.Context, artifact *wfv1.Artifact) (bool, error) {
return false, errors.New(errors.CodeNotImplemented, "IsDirectory currently unimplemented for http")
}
View on GitHub (pinned to 35bff19146)
Solutions
- Treat http artifacts as files; do not attempt directory browsing.
- Serve directory trees via a supported driver (S3/GCS/raw) instead.
- Patch the driver to implement IsDirectory via a HEAD request + content-type/Content-Disposition heuristic if needed.
Defensive patterns
Strategy: fallback
Type guard
// http artifacts never support IsDirectory
if art.HTTP != nil {
// skip IsDirectory; treat as file
} Try / catch
isDir, err := driver.IsDirectory(ctx, art)
if err != nil && strings.Contains(err.Error(), "currently unimplemented") {
isDir = false
} Prevention
- Don't build UI/server flows that browse http artifacts as directories
- Use S3/GCS/raw for directory-shaped artifacts
- Gate generic IsDirectory calls on artifact type
When it happens
Trigger: Calling IsDirectory(ctx, artifact) on an http artifact — typically the artifact server or UI trying to browse/expand the artifact as a directory tree.
Common situations: Generic artifact endpoints calling IsDirectory for any driver type; user exposing an HTTP artifact through the artifact server and clicking into it in the UI.
Related errors
- CodeNotImplemented
- CodeNotFound
- CodeNotImplemented
- ListObjects is currently not supported for this artifact typ
- failed to stream artifact: %v
AI-assisted analysis of argoproj/argo-workflows@35bff19146 (2026-09-03).
Data as JSON: /api/errors/c0e0b95b8275b154.
Report an issue: GitHub.