argoproj/argo-workflows · error

failed to connect to artifact driver %s: %w

Error message

failed to connect to artifact driver %s: %w

What it means

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.

Source

Thrown at server/apiserver/argoserver.go:523

func (as *argoServer) validateArtifactDriverConnections(ctx context.Context, cfg *config.Config) error {
	log := logging.RequireLoggerFromContext(ctx)
	if len(cfg.ArtifactDrivers) == 0 {
		log.Info(ctx, "No artifact drivers configured, skipping connection validation")
		return nil
	}

	log.Info(ctx, "Validating artifact driver connections")

	var wg sync.WaitGroup
	errorChannel := make(chan error, len(cfg.ArtifactDrivers))

	// Validate each driver connection in parallel
	for _, driver := range cfg.ArtifactDrivers {
		wg.Go(func() {
			// Create a new driver connection
			pluginDriver, err := plugin.NewDriver(ctx, driver.Name, driver.Name.SocketPath(), driver.ConnectionTimeout())
			if err != nil {
				errorChannel <- fmt.Errorf("failed to connect to artifact driver %s: %w", driver.Name, err)
				return
			}

			// Close the connection after validation
			defer func() {
				if closeErr := pluginDriver.Close(); closeErr != nil {
					log.WithError(closeErr).WithField("driver", driver.Name).Warn(ctx, "Failed to close connection to artifact driver")
				}
			}()

			log.WithField("driver", driver.Name).Info(ctx, "Successfully validated connection to artifact driver")
		})
	}

	// Wait for all validations to complete
	wg.Wait()
	close(errorChannel)

View on GitHub (pinned to 35bff19146)

Solutions

  1. Check the artifact repository configuration block in the argo-server configmap
  2. Verify credentials, endpoints, and network reachability for the failing driver
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at server/apiserver/argoserver.go:523 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of argoproj/argo-workflows@35bff19146 (2026-09-03). Data as JSON: /api/errors/04ace78b7c61c7c1. Report an issue: GitHub.