Upstash + Sidekiq 7 compatibility - ERR Command is not available: 'BITFIELD'

I’ve just deployed a pretty vanilla Rails 7 + Sidekiq 7 app.

When jobs are processed, I am getting the following WARN:

2022-11-17T16:50:44.238Z pid=520 tid=1z64 WARN: RedisClient::CommandError: ERR Command is not available: 'BITFIELD'. See https://docs.upstash.com/overall/rediscompatibility for details
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]2022-11-17T16:50:44.239Z pid=520 tid=1z64 WARN: /app/vendor/bundle/ruby/3.1.0/gems/redis-client-0.11.1/lib/redis_client/connection_mixin.rb:48:in `call_pipelined'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/redis-client-0.11.1/lib/redis_client.rb:352:in `block (2 levels) in pipelined'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/redis-client-0.11.1/lib/redis_client/middlewares.rb:16:in `call'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/redis-client-0.11.1/lib/redis_client.rb:351:in `block in pipelined'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/redis-client-0.11.1/lib/redis_client.rb:616:in `ensure_connected'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/redis-client-0.11.1/lib/redis_client.rb:349:in `pipelined'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/redis-client-0.11.1/lib/redis_client/decorator.rb:51:in `pipelined'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/metrics/tracking.rb:70:in `block in flush'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/config.rb:156:in `block in redis'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/connection_pool-2.3.0/lib/connection_pool.rb:65:in `block (2 levels) in with'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/connection_pool-2.3.0/lib/connection_pool.rb:64:in `handle_interrupt'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/connection_pool-2.3.0/lib/connection_pool.rb:64:in `block in with'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/connection_pool-2.3.0/lib/connection_pool.rb:61:in `handle_interrupt'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/connection_pool-2.3.0/lib/connection_pool.rb:61:in `with'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/config.rb:153:in `redis'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/component.rb:26:in `redis'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/metrics/tracking.rb:67:in `flush'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/metrics/tracking.rb:132:in `block (2 levels) in <top (required)>'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/component.rb:58:in `block in fire_event'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/component.rb:57:in `each'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/component.rb:57:in `fire_event'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/launcher.rb:181:in `❤'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/launcher.rb:97:in `beat'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/launcher.rb:89:in `block in start_heartbeat'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/launcher.rb:88:in `loop'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/launcher.rb:88:in `start_heartbeat'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/component.rb:8:in `watchdog'
2022-11-17T16:50:44Z app[f37ab3b7] ord [info]/app/vendor/bundle/ruby/3.1.0/gems/sidekiq-7.0.1/lib/sidekiq/component.rb:17:in `block in safe_thread'

Has anyone encountered this? I’m struggling to google for good info.

Update - per Sidekiq, this is an issue with Upstash.

Upstash team is implementing BITFIELD to support the Sidekiq 7. ETA 10D

3 Likes