Error: no overload matches 'ConnectionPool(Redis).new'

Hi, I am new to crystal, trying to figure out the following compile issue:

In lib/redis/src/redis/
#19 1.369
#19 1.369  30 | @pool = ConnectionPool(Redis).new(capacity: pool_size, timeout: pool_timeout) do
#19 1.369                                     ^--
#19 1.369 Error: no overload matches 'ConnectionPool(Redis).new', capacity: Int32, timeout: Float64
#19 1.369
#19 1.369 Overloads are:
#19 1.369  - ConnectionPool(T).new(capacity : Int32 = 5, timeout : Time::Span = 5.seconds, &block : (-> T))

I believe the issue occurs when I try to initialize a redis connection:

@redis = ci.redis_url

RedisClient class:

  class RedisClient
    include Helpers::LogHelper
    getter! connection : Redis::PooledClient?

    def connect
      Retriable.retry do
        Log.notice { "Connecting to Redis... " }
        @connection = url: @uri.to_s
        Log.notice { "Connected to Redis" }

What am I missing?

Please note that the code was compiling fine in the past but I believe that change in this library (v0.3.0) broke it:

Thank you!

1 Like

The gist of it is if you look at the latest release:

  • The timeout parameter for is now a Time::Span instead of a Float64.

Upgrading from a 0.2.x version to a 0.3.x version can, and usually does, include breaking changes just like this. Which Redis shard/version of it are you using?

1 Like

Thanks @Blacksmoke16 for your reply.

Shard looks like:

    github: stefanwille/crystal-redis
    version: ~> 2.6.0
    github: cloudamqp/
    github: mamantoha/cache
    github: Sija/

Does this help?


What about your shard.lock file?

NVM: The issue is by restricting the version of that redis shard to ~> 2.6.0, it can only use that version, which was before the pool shard was restricted to <= 0.2.4 in 2.9.1 · stefanwille/crystal-redis@15c22e0 · GitHub.

Solution seems to be just upgrade the redis shard to its latest version and should be good.


Bumping crystal-redis version to 2.9.1 did resolve this issue!

Thank you for this hint. I thought v2.8.0 is the latest version as it shows on GitHub so I did bump it to that one, with no luck.

I very much appreciate your help.

Glad to hear! Looks like it’s the latest release, but not the latest tag. Ideally the changelog, tag, and release are all in-sync, but that doesn’t seem to be the case. Could maybe be worth creating an issue on their GH about it.

Agreed. Will do that.