Skip to content

Commit 680af03

Browse files
committed
Fix error
1 parent 4681254 commit 680af03

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

lib/optimizely/cmab/cmab_client.rb

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -148,18 +148,22 @@ def _do_fetch_with_retry(url, request_body, retry_config, timeout)
148148
# The variation ID from the response.
149149

150150
backoff = retry_config.retry_delay
151+
last_error = nil
151152

152153
(0..retry_config.max_retries).each do |attempt|
153-
return _do_fetch(url, request_body, timeout)
154-
rescue
155-
if attempt < retry_config.max_retries
156-
@logger.info("Retrying CMAB request (attempt: #{attempt + 1} after #{backoff} seconds)...")
157-
sleep(backoff)
158-
backoff = [backoff * (retry_config.backoff_multiplier**(attempt + 1)), retry_config.max_backoff].min
154+
begin
155+
return _do_fetch(url, request_body, timeout)
156+
rescue => e
157+
last_error = e
158+
if attempt < retry_config.max_retries
159+
@logger.info("Retrying CMAB request (attempt: #{attempt + 1} after #{backoff} seconds)...")
160+
sleep(backoff)
161+
backoff = [backoff * (retry_config.backoff_multiplier**(attempt + 1)), retry_config.max_backoff].min
162+
end
159163
end
160164
end
161165

162-
error_message = Optimizely::Helpers::Constants::CMAB_FETCH_FAILED % 'Max retries exceeded for CMAB request.'
166+
error_message = Optimizely::Helpers::Constants::CMAB_FETCH_FAILED % (last_error&.message || 'Max retries exceeded for CMAB request.')
163167
@logger.error(error_message)
164168
raise CmabFetchError, error_message
165169
end

0 commit comments

Comments
 (0)