Deploying Temporal.io on ECS Fargate

Hi All, I’ tried to search the forum for previous questions that help but didn’t find any.

I’m deploying Temporal.io on ECS Fargate, the matching service works fine. The history service then gives this error

{"level":"info","ts":"2025-10-28T13:08:33.112Z","msg":"matching client encountered error","service":"history","error":"Not enough hosts to serve the request","service-error-type":"serviceerror.Unavailable","logging-call-at":"/home/runner/work/docker-builds/docker-builds/temporal/client/matching/metric_client.go:197"}
{"level":"error","ts":"2025-10-28T13:08:33.112Z","msg":"error from matching when initializing Nexus endpoint cache","error":"Not enough hosts to serve the request"}
{"level":"warn","ts":"2025-10-28T13:09:27.314Z","msg":"unable to bootstrap ringpop. retrying","error":"join duration of 54.934059145s exceeded max 30s","logging-call-at":"/home/runner/work/docker-builds/docker-builds/temporal/common/membership/ringpop/monitor.go:204"}
{"level":"fatal","ts":"2025-10-28T13:09:27.314Z","msg":"failed to start ringpop","error":"exhausted all retries: join duration of 54.934059145s exceeded max 30s","logging-call-at":"/home/runner/work/docker-builds/docker-builds/temporal/common/membership/ringpop/monitor.go:146","stacktrace":"go.temporal.io/server/common/log.(*zapLogger).Fatal\n\t/home/runner/work/docker-builds/docker-builds/temporal/common/log/zap_logger.go:175\ngo.temporal.io/server/common/membership/ringpop.(*monitor).Start\n\t/home/runner/work/docker-builds/docker-builds/temporal/common/membership/ringpop/monitor.go:146\ngo.temporal.io/server/service/history.(*Service).Start.func3\n\t/home/runner/work/docker-builds/docker-builds/temporal/service/history/service.go:107"}

Both of them can access the DB and read/write their membership status.

I’m not sure if it’s a network issue, Since i can’t see any useful information in the logs.

I’m deploying every service as a separate task and Fargate service. I’m using Cloud Map but I’m not sure how useful it is. When i used its DNS Name as the TEMPORAL_BROADCAST_ADDRESS it always gives an error complaining about it.

This is my current ENV

"SERVICES": jsii.String("history"),
			"DB":       jsii.String("mysql8"),

			"DBNAME":      jsii.String(props.InfraConfig.Temporal.MainDatabase.Name),
			"MYSQL_SEEDS": jsii.String(props.InfraConfig.Temporal.MainDatabase.Host),
			"DB_PORT":     jsii.String(props.InfraConfig.Temporal.MainDatabase.Port),
			"MYSQL_USER":  jsii.String(props.InfraConfig.Temporal.MainDatabase.User),
			"MYSQL_PWD":   jsii.String(props.InfraConfig.Temporal.MainDatabase.Password),

			"VISIBILITY_DBNAME":      jsii.String(props.InfraConfig.Temporal.VisibilityDatabase.Name),
			"VISIBILITY_MYSQL_SEEDS": jsii.String(props.InfraConfig.Temporal.VisibilityDatabase.Host),
			"VISIBILITY_DB_PORT":     jsii.String(props.InfraConfig.Temporal.VisibilityDatabase.Port),
			"VISIBILITY_MYSQL_USER":  jsii.String(props.InfraConfig.Temporal.VisibilityDatabase.User),
			"VISIBILITY_MYSQL_PWD":   jsii.String(props.InfraConfig.Temporal.VisibilityDatabase.Password),

Please help with any pointers on how to tackle this, thank you!