#4419 - reports#report - undefined method `in_time_zone' for nil

A NoMethodError occurred in reports#report:

 undefined method `in_time_zone' for nil
 app/lib/report_queries/parameters.rb:273:in `recalculate_dates'


-------------------------------
Request:
-------------------------------

 * URL        : https://www.bikelink.org/reports/report
 * HTTP Method: GET
 * IP address : 198.49.222.20
 * Parameters : {"controller"=>"reports", "action"=>"report"}
 * Timestamp  : 2026-03-18 18:01:33 UTC
 * Server : www-11.internal.bikelink.org
   * Rails root : /var/www/bikelink
 * Process: 3017093

-------------------------------
Session:
-------------------------------

 * session id: [FILTERED]
 * data: {"session_id"=>"741bc43b7faf7c890a6af859c302331a",
  "warden.user.person.key"=>[[63701], "6tuWhyZaRpDP3cBCA33b"],
  "flash"=>
   {"discard"=>[],
    "flashes"=>
     {"error"=>
       "Expected 89 locations, but found 88. Missing: []. Ids can be missing because this person is not allowed access to those objects or that id doesn't exist."}}}

-------------------------------
Environment:
-------------------------------

 * GATEWAY_INTERFACE                                       : CGI/1.2
   * HTTP_ACCEPT                                             : */*
   * HTTP_ACCEPT_ENCODING                                    : gzip, deflate
   * HTTP_CONNECTION                                         : close
   * HTTP_COOKIE                                             : _bikelink_session=GkBomZe4JIRSWRWfBNYUfy552PrWQB3OYw%2FXlv%2FebdgwTvb2Z13NAQBuQWUmR%2Bx3kXvOQ%2F%2FX%2FRFNsfiRosH%2FVTQVUG4Mg9kb%2BZ7rkRH91gROPQ0KjZc0703sSVyoDy5etnO%2BBn3Xj7p8GyeJtwMQz1zlyxYbjCzpdNN3Ecm5qC0ruEPUfL23QeRrZCrhkP0mneo1YZPHNH4v%2FT5HtdgSz709mMNM942srGH2WWkgaGvRfD%2FKUShS1yLfcDtOrrAh7JeXY53Yhkeq%2Fux0onfF1ynx98pG32Q%2FjhFI5Wn0%2FWvjVVISTqk%2FTRBWIt%2BUFBs3EGxqtjeokiVTqrh338wT8sSOjRE5g1oZwiSUKtUWcQLygJIgQUapT3q6DvctPuGuA0%2F9fKyW25SdCns1qd6cPi7boLpSSE%2BSJkNVNWW5OmqZAEvLxIfbCybHO4giXxNl8ClfTBfuoK23FWgzgqyjDsCfe6t0vIvwdyKkvCYmgPXZYHnifw3TqYv1j8h3I0K9f9L2HjExtzcoAf8jH42uXiYyqaWEVMaQnK6eBicdda5SN%2B5jwiL0SMWK9QLt8%2B%2BC077OGTK%2ByHPX5kokO%2BgBXDh2M4zENe8hiLL7jBZnlUGR5WSC1IgyQYt5sqRL--QsNG5YSfbY9Wvb%2BV--KKx4laWIuCUeux%2B%2F2Labug%3D%3D
   * HTTP_HOST                                               : www.bikelink.org
   * HTTP_USER_AGENT                                         : python-requests/2.31.0
   * HTTP_VERSION                                            : HTTP/1.0
   * HTTP_X_AMZN_TRACE_ID                                    : Root=1-69bae87d-7ff0f3d656924b59574b8fac
   * HTTP_X_FORWARDED_FOR                                    : 198.49.222.20, 198.49.222.20
   * HTTP_X_FORWARDED_PORT                                   : 443
   * HTTP_X_FORWARDED_PROTO                                  : https
   * ORIGINAL_FULLPATH                                       : /reports/report
   * ORIGINAL_SCRIPT_NAME                                    :
   * PATH_INFO                                               : /reports/report
   * QUERY_STRING                                            :
   * REMOTE_ADDR                                             : 127.0.0.1
   * REQUEST_METHOD                                          : GET
   * REQUEST_PATH                                            : /reports/report
   * REQUEST_URI                                             : /reports/report
   * ROUTES_13720_SCRIPT_NAME                                :
   * SCRIPT_NAME                                             :
   * SERVER_NAME                                             : www.bikelink.org
   * SERVER_PORT                                             : 443
   * SERVER_PROTOCOL                                         : HTTP/1.0
   * SERVER_SOFTWARE                                         : puma 6.6.0 Return to Forever
   * action_controller.instance                              : #<ReportsController:0x00007ebc00bf50f0>
   * action_dispatch.authenticated_encrypted_cookie_salt     : [FILTERED]
   * action_dispatch.backtrace_cleaner                       : #<Rails::BacktraceCleaner:0x00007ebc10902130>
   * action_dispatch.content_security_policy                 :
   * action_dispatch.content_security_policy_nonce_directives:
   * action_dispatch.content_security_policy_nonce_generator :
   * action_dispatch.content_security_policy_report_only     : false
   * action_dispatch.cookies                                 : #<ActionDispatch::Cookies::CookieJar:0x00007ebc00bf3ac0>
   * action_dispatch.cookies_digest                          :
   * action_dispatch.cookies_rotations                       : #<ActiveSupport::Messages::RotationConfiguration:0x00007ebc1a93c588>
   * action_dispatch.cookies_same_site_protection            : #<Proc:0x00007ebc188c6df8 /var/www/bikelink/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/application.rb:641>
   * action_dispatch.cookies_serializer                      : json
   * action_dispatch.debug_exception_log_level               : 3
   * action_dispatch.encrypted_cookie_cipher                 : [FILTERED]
   * action_dispatch.encrypted_cookie_salt                   : [FILTERED]
   * action_dispatch.encrypted_signed_cookie_salt            : [FILTERED]
   * action_dispatch.http_auth_salt                          : [FILTERED]
   * action_dispatch.key_generator                           : #<ActiveSupport::CachingKeyGenerator:0x00007ebc08bb2b30>
   * action_dispatch.log_rescued_responses                   : true
   * action_dispatch.logger                                  : #<ActiveSupport::BroadcastLogger:0x00007ebc1a536bf0>
   * action_dispatch.parameter_filter                        : [/(?i:confirm_password)|(?i:credit_card_number)|(?i:password)|(?i:passw)|(?i:secret)|(?i:token)|(?i:_key)|(?i:crypt)|(?i:salt)|(?i:certificate)|(?i:otp)|(?i:ssn)/, /(?i:person\.otp_secret)|(?i:encrypted_rich_text\.body)/]
   * action_dispatch.permissions_policy                      :
   * action_dispatch.redirect_filter                         : []
   * action_dispatch.remote_ip                               : 198.49.222.20
   * action_dispatch.request.accepts                         : [#<Mime::Type:0x00007ebc00bf4fb0 @synonyms=[], @symbol=nil, @string="*/*", @hash=-4208811136133309445>]
   * action_dispatch.request.content_type                    :
   * action_dispatch.request.formats                         : [#<Mime::Type:0x00007ebc00bf4fb0 @synonyms=[], @symbol=nil, @string="*/*", @hash=-4208811136133309445>]
   * action_dispatch.request.parameters                      : {"controller"=>"reports", "action"=>"report"}
   * action_dispatch.request.path_parameters                 : {:controller=>"reports", :action=>"report"}
   * action_dispatch.request.query_parameters                : {}
   * action_dispatch.request.request_parameters              : {}
   * action_dispatch.request.unsigned_session_cookie         : {"session_id"=>"741bc43b7faf7c890a6af859c302331a", "warden.user.person.key"=>[[63701], "6tuWhyZaRpDP3cBCA33b"], "flash"=>{"discard"=>[], "flashes"=>{"error"=>"Expected 89 locations, but found 88. Missing: []. Ids can be missing because this person is not allowed access to those objects or that id do...
   * action_dispatch.request_id                              : f3e838ad-9fbc-4e35-a700-136f9eb0bfe9
   * action_dispatch.route_uri_pattern                       : /reports/report(.:format)
   * action_dispatch.routes                                  : #<ActionDispatch::Routing::RouteSet:0x00007ebc10856380>
   * action_dispatch.secret_key_base                         : [FILTERED]
   * action_dispatch.show_detailed_exceptions                : false
   * action_dispatch.show_exceptions                         : all
   * action_dispatch.signed_cookie_digest                    :
   * action_dispatch.signed_cookie_salt                      : [FILTERED]
   * action_dispatch.use_authenticated_cookie_encryption     : [FILTERED]
   * action_dispatch.use_cookies_with_metadata               : true
   * newrelic.transaction_started                            : true
   * puma.config                                             : #<Puma::Configuration:0x00007ebc1b33d898>
   * puma.request_body_wait                                  : 0.0034847259521484375
   * puma.socket                                             : #<UNIXSocket:0x00007ebc009f9580>
   * rack.after_reply                                        : []
   * rack.errors                                             : #<IO:0x00007ebc37099058>
   * rack.hijack                                             : #<Puma::Client:0x00007ebbcb0ff298>
   * rack.hijack?                                            : true
   * rack.input                                              : #<Puma::NullIO:0x00007ebc1b3d5c88>
   * rack.multiprocess                                       : true
   * rack.multithread                                        : true
   * rack.request.cookie_hash                                : {"_bikelink_session"=>"GkBomZe4JIRSWRWfBNYUfy552PrWQB3OYw/Xlv/ebdgwTvb2Z13NAQBuQWUmR+x3kXvOQ//X/RFNsfiRosH/VTQVUG4Mg9kb+Z7rkRH91gROPQ0KjZc0703sSVyoDy5etnO+Bn3Xj7p8GyeJtwMQz1zlyxYbjCzpdNN3Ecm5qC0ruEPUfL23QeRrZCrhkP0mneo1YZPHNH4v/T5HtdgSz709mMNM942srGH2WWkgaGvRfD/KUShS1yLfcDtOrrAh7JeXY53Yhkeq/ux0onfF1...
   * rack.request.cookie_string                              : _bikelink_session=GkBomZe4JIRSWRWfBNYUfy552PrWQB3OYw%2FXlv%2FebdgwTvb2Z13NAQBuQWUmR%2Bx3kXvOQ%2F%2FX%2FRFNsfiRosH%2FVTQVUG4Mg9kb%2BZ7rkRH91gROPQ0KjZc0703sSVyoDy5etnO%2BBn3Xj7p8GyeJtwMQz1zlyxYbjCzpdNN3Ecm5qC0ruEPUfL23QeRrZCrhkP0mneo1YZPHNH4v%2FT5HtdgSz709mMNM942srGH2WWkgaGvRfD%2FKUShS1yLfcDtOrrAh7JeXY53Yhkeq%2Fux0onfF1ynx98pG32Q%2FjhFI5Wn0%2FWvjVVISTqk%2FTRBWIt%2BUFBs3EGxqtjeokiVTqrh338wT8sSOjRE5g1oZwiSUKtUWcQLygJIgQUapT3q6DvctPuGuA0%2F9fKyW25SdCns1qd6cPi7boLpSSE%2BSJkNVNWW5OmqZAEvLxIfbCybHO4giXxNl8ClfTBfuoK23FWgzgqyjDsCfe6t0vIvwdyKkvCYmgPXZYHnifw3TqYv1j8h3I0K9f9L2HjExtzcoAf8jH42uXiYyqaWEVMaQnK6eBicdda5SN%2B5jwiL0SMWK9QLt8%2B%2BC077OGTK%2ByHPX5kokO%2BgBXDh2M4zENe8hiLL7jBZnlUGR5WSC1IgyQYt5sqRL--QsNG5YSfbY9Wvb%2BV--KKx4laWIuCUeux%2B%2F2Labug%3D%3D
   * rack.request.form_hash                                  : {}
   * rack.request.form_input                                 : #<Puma::NullIO:0x00007ebc1b3d5c88>
   * rack.request.query_hash                                 : {}
   * rack.request.query_string                               :
   * rack.run_once                                           : false
   * rack.session                                            : #<ActionDispatch::Request::Session:0x00007ebc00bf5820>
   * rack.session.options                                    : #<ActionDispatch::Request::Session::Options:0x00007ebc009f5bb0>
   * rack.tempfiles                                          : []
   * rack.url_scheme                                         : https
   * rack.version                                            : [1, 6]
   * rails.rack_logger_tag_count                             : 1
   * warden                                                  : Warden::Proxy:942540 @config={:default_scope=>:person, :scope_defaults=>{}, :default_strategies=>{:person=>[:two_factor_authenticatable, :two_factor_authenticatable, :rememberable]}, :intercept_401=>false, :failure_app=>#<Devise::Delegator:0x00007ebc053b55c0>}

-------------------------------
Backtrace:
-------------------------------

 app/lib/report_queries/parameters.rb:273:in `recalculate_dates'
 app/lib/report_queries/parameters.rb:122:in `parse_parameters'
 app/lib/report_queries/parameters.rb:60:in `initialize'
 app/controllers/reports_controller.rb:409:in `new'
 app/controllers/reports_controller.rb:409:in `initialize_report_parameters'
 app/controllers/reports_controller.rb:203:in `report'
 app/controllers/application_controller.rb:45:in `process_action'
Znovu načítať