{"record":{"id":"2481a08dd6070f2e","repo":"argoproj/argo-workflows","slug":"failed-to-load-non-plugin-input-artifacts-w","errorCode":null,"errorMessage":"failed to load non-plugin input artifacts: %w","messagePattern":"failed to load non-plugin input artifacts: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/argoexec/commands/supervisor.go","lineNumber":153,"sourceCode":"\t// heartbeat's initial RUNNING write (startStatusHeartbeat, before we get\n\t// here) has already overwritten it with a fresh mtime.\n\treturn runSupervisorPreMain(ctx, wfExecutor, inputArtifactPluginNames())\n}\n\n// runSupervisorPreMain is the testable core of supervisorPreMain. Takes\n// the plugin name list explicitly so tests don't have to mutate env vars.\nfunc runSupervisorPreMain(ctx context.Context, stages preMainStages, pluginNames []wfv1.ArtifactPluginName) error {\n\tif err := stages.WriteTemplate(); err != nil {\n\t\treturn fmt.Errorf(\"failed to write template: %w\", err)\n\t}\n\tif err := stages.StageFiles(ctx); err != nil {\n\t\treturn fmt.Errorf(\"failed to stage files: %w\", err)\n\t}\n\n\tg, gctx := errgroup.WithContext(ctx)\n\tg.Go(func() error {\n\t\tif err := stages.LoadArtifactsWithoutPlugins(gctx); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to load non-plugin input artifacts: %w\", err)\n\t\t}\n\t\treturn nil\n\t})\n\tfor _, name := range pluginNames {\n\t\tg.Go(func() error {\n\t\t\tif err := stages.LoadArtifactsFromPlugin(gctx, name); err != nil {\n\t\t\t\treturn fmt.Errorf(\"failed to load input artifacts from plugin %q: %w\", name, err)\n\t\t\t}\n\t\t\treturn nil\n\t\t})\n\t}\n\treturn g.Wait()\n}\n\n// inputArtifactPluginNames reads the controller-supplied list of input\n// artifact plugin names from the supervisor's environment.\nfunc inputArtifactPluginNames() []wfv1.ArtifactPluginName {\n\traw := common.SplitPluginNames(os.Getenv(common.EnvVarInputArtifactPluginNames))","sourceCodeStart":135,"sourceCodeEnd":171,"githubUrl":"https://github.com/argoproj/argo-workflows/blob/35bff19146f5a6ada77468c431f2624bd577e373/cmd/argoexec/commands/supervisor.go#L135-L171","documentation":"In runSupervisorPreMain, artifact loading is parallelized with an errgroup; the goroutine calling LoadArtifactsWithoutPlugins wraps its error as \"failed to load non-plugin input artifacts\". This covers all input artifacts that are not fetched via artifact plugins (s3, gcs, git, http, raw, etc.); a failure in any of them fails the errgroup and the whole pre-main phase.","triggerScenarios":"supervisorPreMain's errgroup goroutine: LoadArtifactsWithoutPlugins returned an error while downloading a non-plugin input artifact — bad credentials, nonexistent key, unsupported backend, or network failure.","commonSituations":"Expired/rotated S3 or GCS credentials in the artifact repository config; deleted artifact keys referenced by the Workflow; egress firewalls blocking storage endpoints; artifact plugin wrongly excluded from the artifact's driver path.","solutions":["Read the wrapped cause to see which artifact and backend failed","Verify artifact repository credentials and bucket/container configuration","Confirm the artifact key/path still exists in the storage backend","Test network connectivity from the pod to the artifact endpoint"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// before submit: confirm artifacts are reachable with the configured credentials\n// aws s3 ls s3://<bucket>/<key>  # or gsutil/gcloud equivalent","typeGuard":null,"tryCatchPattern":"// artifact downloads are often transient — retry at the workflow level\n// retryStrategy:\n//   limit: \"3\"\n//   retryPolicy: \"TransientError\"\n// and in code: use util/errors.IsTransientErr(ctx, err) to decide retries","preventionTips":["Add retryStrategy to templates that download input artifacts","Rotate/verify artifact credentials before expiry","Check artifact keys exist in the backend before referencing them","Allow pod egress to storage endpoints in NetworkPolicies"],"tags":["go","argo-executor","supervisor","artifacts","errgroup"],"backgroundTag":"artifact-download-failed","analyzedSha":"35bff19146f5a6ada77468c431f2624bd577e373","analyzedAt":"2026-09-03T19:34:35.908Z","contentChangedAt":"2026-09-03T19:34:35.908Z","schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}