argoproj/argo-workflows · error

GRPC_MESSAGE_SIZE environment variable must be set as an int

Error message

GRPC_MESSAGE_SIZE environment variable must be set as an integer: %w

What it means

The GRPC_MESSAGE_SIZE environment variable could not be parsed as an integer (util env.GetInt). Argo-server startup aborts because the max gRPC message size is unknown; the default is 100MB when the variable is unset.

Source

Thrown at server/apiserver/argoserver.go:182

		log.Info(ctx, "SSO enabled")
	} else {
		log.Info(ctx, "SSO disabled")
	}
	gatekeeper, err := auth.NewGatekeeper(opts.AuthModes, opts.Clients, opts.RestConfig, ssoIf, auth.DefaultClientForAuthorization, opts.Namespace, opts.SSONamespace, opts.Namespaced, resourceCache)
	if err != nil {
		return nil, err
	}
	store, err := memorystore.New(&memorystore.Config{
		Tokens:   opts.APIRateLimit,
		Interval: time.Second,
	})
	if err != nil {
		log.WithFatal().Error(ctx, err.Error())
	}

	maxGRPCMessageSize, err := env.GetInt("GRPC_MESSAGE_SIZE", 100*1024*1024)
	if err != nil {
		return nil, fmt.Errorf("GRPC_MESSAGE_SIZE environment variable must be set as an integer: %w", err)
	}

	return &argoServer{
		baseHRef:                 opts.BaseHRef,
		tlsConfig:                opts.TLSConfig,
		hsts:                     opts.HSTS,
		namespace:                opts.Namespace,
		managedNamespace:         opts.ManagedNamespace,
		clients:                  opts.Clients,
		gatekeeper:               gatekeeper,
		oAuth2Service:            ssoIf,
		configController:         configController,
		stopCh:                   make(chan struct{}),
		eventQueueSize:           opts.EventOperationQueueSize,
		eventWorkerCount:         opts.EventWorkerCount,
		eventAsyncDispatch:       opts.EventAsyncDispatch,
		xframeOptions:            opts.XFrameOptions,
		accessControlAllowOrigin: opts.AccessControlAllowOrigin,

View on GitHub (pinned to 35bff19146)

Solutions

  1. Set GRPC_MESSAGE_SIZE to a plain integer (bytes), e.g. 104857600
  2. Or unset it to accept the 100MB default
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/apiserver/argoserver.go:182 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/fb061609b4194853. Report an issue: GitHub.