we-promise/sure · error · Provider::YahooFinance::Error

Start date cannot be after end date

Error message

Start date cannot be after end date

What it means

Error "Start date cannot be after end date" thrown in we-promise/sure.

Source

Thrown at app/models/provider/yahoo_finance.rb:638

        .select { |s| EXCHANGE_CONFIG.dig(s.exchange_operating_mic, :dual_list_group) }
        .group_by { |s| [ EXCHANGE_CONFIG[s.exchange_operating_mic][:dual_list_group], s.name.to_s.strip.downcase ] }
        .each_value do |group|
          next unless group.size > 1
          preferred = group.min_by { |s| EXCHANGE_CONFIG[s.exchange_operating_mic][:preference_rank] }
          group.each { |s| dominated << s.object_id unless s.equal?(preferred) }
        end

      return securities if dominated.empty?
      securities.reject { |s| dominated.include?(s.object_id) }
    end

    # ================================
    #           Validation
    # ================================


    def validate_date_range!(start_date, end_date)
      raise Error, "Start date cannot be after end date" if start_date > end_date
      raise Error, "Date range too large (max 5 years)" if end_date > start_date + 5.years
    end

    def validate_date_params!(start_date, end_date)
      # Validate presence and coerce to dates
      validated_start_date = validate_and_coerce_date!(start_date, "start_date")
      validated_end_date = validate_and_coerce_date!(end_date, "end_date")

      # Ensure start_date <= end_date
      if validated_start_date > validated_end_date
        error_msg = "Start date (#{validated_start_date}) cannot be after end date (#{validated_end_date})"
        raise ArgumentError, error_msg
      end

      # Ensure end_date is not in the future
      today = Date.current
      if validated_end_date > today
        error_msg = "End date (#{validated_end_date}) cannot be in the future"

View on GitHub (pinned to e69894adb9)

When it happens

Trigger: Thrown at app/models/provider/yahoo_finance.rb:638 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of we-promise/sure@e69894adb9 (2026-08-21). Data as JSON: /api/errors/0b6d71f542926028. Report an issue: GitHub.