From 4ee8b92f0c6e369dee1aa21e94921bbf17a1de53 Mon Sep 17 00:00:00 2001 From: Jeremy Walker Date: Mon, 9 Feb 2026 20:57:06 +0000 Subject: [PATCH] Handle Redis cluster errors in Metrics increment methods Rescue Redis::Cluster::InitialSetupError and RedisClient::Cluster::InitialSetupError in the dynamically defined increment_num_*! methods. These counters are periodically recalculated from the database, so a missed increment during a transient Redis connectivity issue is harmless. Closes #8433 Co-Authored-By: Claude Opus 4.6 --- app/models/metrics.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/models/metrics.rb b/app/models/metrics.rb index d508fc77f2..a482cd3955 100644 --- a/app/models/metrics.rb +++ b/app/models/metrics.rb @@ -17,6 +17,10 @@ class << self define_method "increment_num_#{key}!" do Exercism.redis_cache_client.incr(redis_key) + rescue Redis::Cluster::InitialSetupError, RedisClient::Cluster::InitialSetupError + # Redis connectivity issues are transient. These counters + # are periodically recalculated from the database, so + # a missed increment is harmless. end define_method "set_num_#{key}!" do