{"id":"f8fbfd7ff99cb48f","repo":"go-redis/redis","slug":"redis-failed-to-create-pipeline-connection-pool-f8fbfd","errorCode":null,"errorMessage":"redis: failed to create pipeline connection pool: %w","messagePattern":"redis: failed to create pipeline connection pool: %w","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sentinel.go","lineNumber":615,"sourceCode":"\t\t\t// Same clamp Options.init applies to the main pool: RESP3 push\n\t\t\t// parsing needs a minimum read buffer, and a tiny pipeline reader\n\t\t\t// would break push-notification handling on pipeline conns.\n\t\t\tif pipelineOpt.Protocol == 3 && pipelineOpt.ReadBufferSize < proto.MinRESP3ReadBufferSize {\n\t\t\t\tpipelineOpt.ReadBufferSize = proto.MinRESP3ReadBufferSize\n\t\t\t}\n\t\t}\n\t\tif opt.PipelineWriteBufferSize > 0 {\n\t\t\tpipelineOpt.WriteBufferSize = opt.PipelineWriteBufferSize\n\t\t}\n\t\tif opt.PipelinePoolSize > 0 {\n\t\t\tpipelineOpt.PoolSize = opt.PipelinePoolSize\n\t\t} else {\n\t\t\tpipelineOpt.PoolSize = 10 // default smaller pool for pipelining\n\t\t}\n\t\trdb.pipelinePoolName = mainPoolName + \"_pipeline\"\n\t\trdb.pipelinePool, err = newConnPool(pipelineOpt, rdb.dialHook, rdb.pipelinePoolName)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Errorf(\"redis: failed to create pipeline connection pool: %w\", err))\n\t\t}\n\t}\n\n\t// Register pools for OTel async gauge metrics, matching NewClient (the\n\t// failover client previously registered none, so pool gauges were silent\n\t// for the identical standalone setup). The pipeline pool is nil when not\n\t// configured.\n\totel.RegisterPools(rdb.connPool, rdb.pubSubPool, rdb.pipelinePool, opt.Addr)\n\n\trdb.onClose.register(onCloseHookIDSentinelFailover, failover.Close)\n\n\tfailover.mu.Lock()\n\tfailover.onFailover = func(ctx context.Context, addr string) {\n\t\tif connPool, ok := rdb.connPool.(*pool.ConnPool); ok {\n\t\t\t_ = connPool.Filter(func(cn *pool.Conn) bool {\n\t\t\t\treturn cn.RemoteAddr().String() != addr\n\t\t\t})\n\t\t}","sourceCodeStart":597,"sourceCodeEnd":633,"githubUrl":"https://github.com/go-redis/redis/blob/36d97525cd8076aed67cddf54778e9ea84550929/sentinel.go#L597-L633","documentation":"Error \"redis: failed to create pipeline connection pool: %w\" thrown in go-redis/redis.","triggerScenarios":"Thrown at sentinel.go:615 when the library encounters an invalid state.","commonSituations":"Fail startup on pool creation errors rather than deferring to first command.","solutions":["Inspect the wrapped error for why the pipeline pool failed to initialize","Verify pool options and sentinel addresses"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"36d97525cd8076aed67cddf54778e9ea84550929","analyzedAt":"2026-08-06T01:08:27.376Z","schemaVersion":2}