{"record":{"id":"7e24a91ce341ff94","repo":"we-promise/sure","slug":"end-date-validated-end-date-cannot-be-in-the","errorCode":null,"errorMessage":"End date (#{validated_end_date}) cannot be in the future","messagePattern":"End date \\(#(.+?)\\) cannot be in the future","errorType":"validation","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"app/models/provider/yahoo_finance.rb","lineNumber":657,"sourceCode":"      raise Error, \"Date range too large (max 5 years)\" if end_date > start_date + 5.years\n    end\n\n    def validate_date_params!(start_date, end_date)\n      # Validate presence and coerce to dates\n      validated_start_date = validate_and_coerce_date!(start_date, \"start_date\")\n      validated_end_date = validate_and_coerce_date!(end_date, \"end_date\")\n\n      # Ensure start_date <= end_date\n      if validated_start_date > validated_end_date\n        error_msg = \"Start date (#{validated_start_date}) cannot be after end date (#{validated_end_date})\"\n        raise ArgumentError, error_msg\n      end\n\n      # Ensure end_date is not in the future\n      today = Date.current\n      if validated_end_date > today\n        error_msg = \"End date (#{validated_end_date}) cannot be in the future\"\n        raise ArgumentError, error_msg\n      end\n\n      # Optional: Enforce max lookback window (configurable via constant)\n      max_lookback = MAX_LOOKBACK_WINDOW.ago.to_date\n      if validated_start_date < max_lookback\n        error_msg = \"Start date (#{validated_start_date}) exceeds maximum lookback window (#{max_lookback})\"\n        raise ArgumentError, error_msg\n      end\n    end\n\n    def validate_and_coerce_date!(date_param, param_name)\n      # Check presence\n      if date_param.blank?\n        error_msg = \"#{param_name} cannot be blank\"\n        raise ArgumentError, error_msg\n      end\n\n      # Try to coerce to date","sourceCodeStart":639,"sourceCodeEnd":675,"githubUrl":"https://github.com/we-promise/sure/blob/e69894adb92547273377398c15f45c979cd9416a/app/models/provider/yahoo_finance.rb#L639-L675","documentation":"Error \"End date (#{validated_end_date}) cannot be in the future\" thrown in we-promise/sure.","triggerScenarios":"Thrown at app/models/provider/yahoo_finance.rb:657 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e69894adb92547273377398c15f45c979cd9416a","analyzedAt":"2026-08-21T18:22:41.165Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}