{"id":"52672ac381ea0f7c","repo":"go-redis/redis","slug":"redis-failed-to-create-pubsub-pool-w-52672a","errorCode":null,"errorMessage":"redis: failed to create pubsub pool: %w","messagePattern":"redis: failed to create pubsub pool: %w","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sentinel.go","lineNumber":588,"sourceCode":"\trdb.init()\n\n\t// Initialize push notification processor using shared helper\n\t// Use void processor by default for RESP2 connections\n\trdb.pushProcessor = initializePushProcessor(opt)\n\n\t// Generate unique pool names for metrics\n\tuniqueID := generateUniqueID()\n\tmainPoolName := opt.Addr + \"_\" + uniqueID\n\tpubsubPoolName := opt.Addr + \"_\" + uniqueID + \"_pubsub\"\n\n\tvar err error\n\trdb.connPool, err = newConnPool(opt, rdb.dialHook, mainPoolName)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"redis: failed to create connection pool: %w\", err))\n\t}\n\trdb.pubSubPool, err = newPubSubPool(opt, rdb.dialHook, pubsubPoolName)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"redis: failed to create pubsub pool: %w\", err))\n\t}\n\n\t// Optionally create a separate connection pool for pipelining, with its own\n\t// (typically larger) buffers. Enabled when either pipeline buffer size is set.\n\tif opt.PipelineReadBufferSize > 0 || opt.PipelineWriteBufferSize > 0 {\n\t\tpipelineOpt := opt.clone()\n\t\tif opt.PipelineReadBufferSize > 0 {\n\t\t\tpipelineOpt.ReadBufferSize = opt.PipelineReadBufferSize\n\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}","sourceCodeStart":570,"sourceCodeEnd":606,"githubUrl":"https://github.com/go-redis/redis/blob/36d97525cd8076aed67cddf54778e9ea84550929/sentinel.go#L570-L606","documentation":"Error \"redis: failed to create pubsub pool: %w\" thrown in go-redis/redis.","triggerScenarios":"Thrown at sentinel.go:588 when the library encounters an invalid state.","commonSituations":"Test sentinel reachability before constructing failover clients.","solutions":["Check the wrapped error for the pubsub pool creation failure","Verify sentinel connectivity and pubsub-related pool settings"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"36d97525cd8076aed67cddf54778e9ea84550929","analyzedAt":"2026-08-06T01:08:27.376Z","schemaVersion":2}