{"record":{"id":"04ace78b7c61c7c1","repo":"argoproj/argo-workflows","slug":"failed-to-connect-to-artifact-driver-s-w","errorCode":null,"errorMessage":"failed to connect to artifact driver %s: %w","messagePattern":"failed to connect to artifact driver (.+?): %w","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/apiserver/argoserver.go","lineNumber":523,"sourceCode":"func (as *argoServer) validateArtifactDriverConnections(ctx context.Context, cfg *config.Config) error {\n\tlog := logging.RequireLoggerFromContext(ctx)\n\tif len(cfg.ArtifactDrivers) == 0 {\n\t\tlog.Info(ctx, \"No artifact drivers configured, skipping connection validation\")\n\t\treturn nil\n\t}\n\n\tlog.Info(ctx, \"Validating artifact driver connections\")\n\n\tvar wg sync.WaitGroup\n\terrorChannel := make(chan error, len(cfg.ArtifactDrivers))\n\n\t// Validate each driver connection in parallel\n\tfor _, driver := range cfg.ArtifactDrivers {\n\t\twg.Go(func() {\n\t\t\t// Create a new driver connection\n\t\t\tpluginDriver, err := plugin.NewDriver(ctx, driver.Name, driver.Name.SocketPath(), driver.ConnectionTimeout())\n\t\t\tif err != nil {\n\t\t\t\terrorChannel <- fmt.Errorf(\"failed to connect to artifact driver %s: %w\", driver.Name, err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Close the connection after validation\n\t\t\tdefer func() {\n\t\t\t\tif closeErr := pluginDriver.Close(); closeErr != nil {\n\t\t\t\t\tlog.WithError(closeErr).WithField(\"driver\", driver.Name).Warn(ctx, \"Failed to close connection to artifact driver\")\n\t\t\t\t}\n\t\t\t}()\n\n\t\t\tlog.WithField(\"driver\", driver.Name).Info(ctx, \"Successfully validated connection to artifact driver\")\n\t\t})\n\t}\n\n\t// Wait for all validations to complete\n\twg.Wait()\n\tclose(errorChannel)\n","sourceCodeStart":505,"sourceCodeEnd":541,"githubUrl":"https://github.com/argoproj/argo-workflows/blob/35bff19146f5a6ada77468c431f2624bd577e373/server/apiserver/argoserver.go#L505-L541","documentation":"During argo-server startup, validateArtifactDriverConnections could not establish a connection for one of the configured artifact storage drivers (s3/gcs/azure/etc.); the wrapped error names the driver and cause, and the server refuses to start so misconfiguration is caught early.","triggerScenarios":"Thrown at server/apiserver/argoserver.go:523 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the artifact repository configuration block in the argo-server configmap","Verify credentials, endpoints, and network reachability for the failing driver"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}