googleapis/mcp-toolbox · error

unable to create pool: %w

Error message

unable to create pool: %w

What it means

The TiDB (MySQL) connection pool could not be created during source Initialize — the DSN from host/port/user/password/database was rejected or the server was unreachable.

Source

Thrown at internal/sources/tidb/tidb.go:74

type Config struct {
	Name     string `yaml:"name" validate:"required"`
	Type     string `yaml:"type" validate:"required"`
	Host     string `yaml:"host" validate:"required"`
	Port     string `yaml:"port" validate:"required"`
	User     string `yaml:"user" validate:"required"`
	Password string `yaml:"password" validate:"required"`
	Database string `yaml:"database" validate:"required"`
	UseSSL   bool   `yaml:"ssl"`
}

func (r Config) SourceConfigType() string {
	return SourceType
}

func (r Config) Initialize(ctx context.Context, tracer trace.Tracer) (sources.Source, error) {
	pool, err := initTiDBConnectionPool(ctx, tracer, r.Name, r.Host, r.Port, r.User, r.Password, r.Database, r.UseSSL)
	if err != nil {
		return nil, fmt.Errorf("unable to create pool: %w", err)
	}

	err = pool.PingContext(ctx)
	if err != nil {
		pool.Close()
		return nil, fmt.Errorf("unable to connect successfully: %w", err)
	}

	s := &Source{
		Config: r,
		Pool:   pool,
	}
	return s, nil
}

var _ sources.Source = &Source{}

type Source struct {

View on GitHub (pinned to 8cc6e09de2)

Solutions

  1. Verify host, port, credentials and database in the source config
  2. Confirm TiDB is reachable and the `ssl` setting matches the server's TLS requirement
  3. Check firewall/VPC rules
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at internal/sources/tidb/tidb.go:74 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of googleapis/mcp-toolbox@8cc6e09de2 (2026-09-05). Data as JSON: /api/errors/19c40142c2b8eef0. Report an issue: GitHub.