{"record":{"id":"0232e08370dc38e6","repo":"flippercloud/flipper","slug":"max-timeout-ms-must-be-0-but-was-max-timeou","errorCode":null,"errorMessage":":max_timeout_ms must be >= 0 but was #{@max_timeout_ms.inspect}","messagePattern":":max_timeout_ms must be >= 0 but was #(.+?)","errorType":"exception","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/flipper/cloud/telemetry/backoff_policy.rb","lineNumber":53,"sourceCode":"          @min_timeout_ms = options.fetch(:min_timeout_ms) {\n            ENV.fetch(\"FLIPPER_BACKOFF_MIN_TIMEOUT_MS\", MIN_TIMEOUT_MS).to_i\n          }\n          @max_timeout_ms = options.fetch(:max_timeout_ms) {\n            ENV.fetch(\"FLIPPER_BACKOFF_MAX_TIMEOUT_MS\", MAX_TIMEOUT_MS).to_i\n          }\n          @multiplier = options.fetch(:multiplier) {\n            ENV.fetch(\"FLIPPER_BACKOFF_MULTIPLIER\", MULTIPLIER).to_f\n          }\n          @randomization_factor = options.fetch(:randomization_factor) {\n            ENV.fetch(\"FLIPPER_BACKOFF_RANDOMIZATION_FACTOR\", RANDOMIZATION_FACTOR).to_f\n          }\n\n          unless @min_timeout_ms >= 0\n            raise ArgumentError, \":min_timeout_ms must be >= 0 but was #{@min_timeout_ms.inspect}\"\n          end\n\n          unless @max_timeout_ms >= 0\n            raise ArgumentError, \":max_timeout_ms must be >= 0 but was #{@max_timeout_ms.inspect}\"\n          end\n\n          unless @min_timeout_ms <= max_timeout_ms\n            raise ArgumentError, \":min_timeout_ms (#{@min_timeout_ms.inspect}) must be <= :max_timeout_ms (#{@max_timeout_ms.inspect})\"\n          end\n\n          @attempts = 0\n        end\n\n        # Public: Returns the next backoff interval in milliseconds.\n        def next_interval\n          interval = @min_timeout_ms * (@multiplier**@attempts)\n          interval = add_jitter(interval, @randomization_factor)\n\n          @attempts += 1\n\n          # cap the interval to the max timeout\n          result = [interval, @max_timeout_ms].min","sourceCodeStart":35,"sourceCodeEnd":71,"githubUrl":"https://github.com/flippercloud/flipper/blob/1f86de3ec91521585b156445e156642938b19cb0/lib/flipper/cloud/telemetry/backoff_policy.rb#L35-L71","documentation":"Error \":max_timeout_ms must be >= 0 but was #{@max_timeout_ms.inspect}\" thrown in flippercloud/flipper.","triggerScenarios":"Thrown at lib/flipper/cloud/telemetry/backoff_policy.rb:53 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass max_timeout_ms as a non-negative number (>= 0)","Remove the option to use the default backoff policy values","Fix the configuration value; a negative or nil max_timeout_ms is invalid"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"1f86de3ec91521585b156445e156642938b19cb0","analyzedAt":"2026-08-23T04:36:09.896Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}