I have an index view with a search form with 6 fields that are mapped to url params.
For testing purpose, I added a condition on name param to raise an error in the controller:
So far, I did not test in production, could it be something specific to development mode?
See the server log below..
Ideally, a clickable link in dashboard to reproduce the error.
empty params, wrong url and user agent.
Started GET "/fr/profiles?player_id=&name=XXX&gender=&country_id=&classification=&classification_status=&button=" for 127.0.0.1 at 2026-04-09 14:38:01 +0200
Processing by ProfilesController#index as HTML
Parameters: {"player_id" => "", "name" => "XXX", "gender" => "", "country_id" => "", "classification" => "", "classification_status" => "", "button" => "", "locale" => "fr"}
Completed 500 Internal Server Error in 2ms (ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.0ms)
[ActiveJob] Enqueued RailsErrorDashboard::AsyncErrorLoggingJob (Job ID: a6fda7b8-d291-4dce-bb16-05909040d252) to Async(default) with arguments: {class_name: "ActionDispatch::InvalidParameterError", message: "Test RED", backtrace: ["/home/gael/Work/parastats/app/controllers/profiles_controller.rb:30:in 'ProfilesController#index'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_controller/metal/basic_implicit_render.rb:8:in 'ActionController::BasicImplicitRender#send_action'"], cause_chain: nil}, {user_id: nil, request_url: "application.action_dispatch", request_params: "{}", user_agent: "Rails Application", ip_address: "application_layer", platform: "API", controller_name: "ProfilesController", action_name: nil, http_method: nil, hostname: nil, content_type: nil, request_duration_ms: nil, source: "application.action_dispatch"}
ActionDispatch::InvalidParameterError (Test RED):
app/controllers/profiles_controller.rb:30:in 'ProfilesController#index'
[ActiveJob] [RailsErrorDashboard::AsyncErrorLoggingJob] [a6fda7b8-d291-4dce-bb16-05909040d252] Performing RailsErrorDashboard::AsyncErrorLoggingJob (Job ID: a6fda7b8-d291-4dce-bb16-05909040d252) from Async(default) enqueued at 2026-04-09T12:38:01.842038677Z with arguments: {class_name: "ActionDispatch::InvalidParameterError", message: "Test RED", backtrace: ["/home/gael/Work/parastats/app/controllers/profiles_controller.rb:30:in 'ProfilesController#index'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_controller/metal/basic_implicit_render.rb:8:in 'ActionController::BasicImplicitRender#send_action'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/abstract_controller/base.rb:221:in 'AbstractController::Base#process_action'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_controller/metal/rendering.rb:199:in 'ActionController::Rendering#process_action'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/abstract_controller/callbacks.rb:267:in 'block in AbstractController::Callbacks#process_action'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/activesupport-8.1.3/lib/active_support/callbacks.rb:121:in 'block in ActiveSupport::Callbacks#run_callbacks'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/turbo-rails-2.0.23/lib/turbo-rails.rb:24:in 'Turbo.with_request_id'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/turbo-rails-2.0.23/app/controllers/concerns/turbo/request_id_tracking.rb:10:in 'Turbo::RequestIdTracking#turbo_tracking_request_id'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/activesupport-8.1.3/lib/active_support/callbacks.rb:130:in 'block in ActiveSupport::Callbacks#run_callbacks'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actiontext-8.1.3/lib/action_text/rendering.rb:24:in 'ActionText::Rendering::ClassMethods#with_renderer'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actiontext-8.1.3/lib/action_text/engine.rb:72:in 'block (4 levels) in <class:Engine>'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/activesupport-8.1.3/lib/active_support/callbacks.rb:130:in 'BasicObject#instance_exec'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/activesupport-8.1.3/lib/active_support/callbacks.rb:130:in 'block in ActiveSupport::Callbacks#run_callbacks'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/activesupport-8.1.3/lib/active_support/callbacks.rb:141:in 'ActiveSupport::Callbacks#run_callbacks'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/abstract_controller/callbacks.rb:266:in 'AbstractController::Callbacks#process_action'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_controller/metal/rescue.rb:36:in 'ActionController::Rescue#process_action'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_controller/metal/instrumentation.rb:76:in 'block in ActionController::Instrumentation#process_action'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/activesupport-8.1.3/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/activesupport-8.1.3/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/activesupport-8.1.3/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_controller/metal/instrumentation.rb:75:in 'ActionController::Instrumentation#process_action'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_controller/metal/params_wrapper.rb:259:in 'ActionController::ParamsWrapper#process_action'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/activerecord-8.1.3/lib/active_record/railties/controller_runtime.rb:39:in 'ActiveRecord::Railties::ControllerRuntime#process_action'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/abstract_controller/base.rb:154:in 'AbstractController::Base#process'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionview-8.1.3/lib/action_view/rendering.rb:40:in 'ActionView::Rendering#process'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_controller/metal.rb:252:in 'ActionController::Metal#dispatch'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_controller/metal.rb:335:in 'ActionController::Metal.dispatch'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/routing/route_set.rb:65:in 'ActionDispatch::Routing::RouteSet::Dispatcher#dispatch'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/routing/route_set.rb:50:in 'ActionDispatch::Routing::RouteSet::Dispatcher#serve'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/journey/router.rb:35:in 'block in ActionDispatch::Journey::Router#serve'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/journey/router.rb:86:in 'block in ActionDispatch::Journey::Router#recognize'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/journey/router.rb:66:in 'Array#each'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/journey/router.rb:66:in 'ActionDispatch::Journey::Router#recognize'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/journey/router.rb:31:in 'ActionDispatch::Journey::Router#serve'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/routing/route_set.rb:906:in 'ActionDispatch::Routing::RouteSet#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/railties-8.1.3/lib/rails/engine/lazy_route_set.rb:60:in 'Rails::Engine::LazyRouteSet#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/apipie-rails-1.5.0/lib/apipie/static_dispatcher.rb:72:in 'Apipie::StaticDispatcher#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rack-attack-6.8.0/lib/rack/attack.rb:129:in 'Rack::Attack#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/http_accept_language-2.1.1/lib/http_accept_language/middleware.rb:14:in 'HttpAcceptLanguage::Middleware#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/bullet-8.1.0/lib/bullet/rack.rb:21:in 'Bullet::Rack#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/warden-1.2.9/lib/warden/manager.rb:36:in 'block in Warden::Manager#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/warden-1.2.9/lib/warden/manager.rb:34:in 'Kernel#catch'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/warden-1.2.9/lib/warden/manager.rb:34:in 'Warden::Manager#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rack-3.2.6/lib/rack/tempfile_reaper.rb:20:in 'Rack::TempfileReaper#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rack-3.2.6/lib/rack/etag.rb:29:in 'Rack::ETag#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rack-3.2.6/lib/rack/conditional_get.rb:31:in 'Rack::ConditionalGet#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rack-3.2.6/lib/rack/head.rb:15:in 'Rack::Head#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/http/content_security_policy.rb:38:in 'ActionDispatch::ContentSecurityPolicy::Middleware#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rack-session-2.1.1/lib/rack/session/abstract/id.rb:274:in 'Rack::Session::Abstract::Persisted#context'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rack-session-2.1.1/lib/rack/session/abstract/id.rb:268:in 'Rack::Session::Abstract::Persisted#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/cookies.rb:708:in 'ActionDispatch::Cookies#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/activerecord-8.1.3/lib/active_record/migration.rb:671:in 'ActiveRecord::Migration::CheckPending#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/callbacks.rb:31:in 'block in ActionDispatch::Callbacks#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/activesupport-8.1.3/lib/active_support/callbacks.rb:101:in 'ActiveSupport::Callbacks#run_callbacks'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/callbacks.rb:30:in 'ActionDispatch::Callbacks#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/executor.rb:20:in 'ActionDispatch::Executor#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/actionable_exceptions.rb:18:in 'ActionDispatch::ActionableExceptions#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/debug_exceptions.rb:31:in 'ActionDispatch::DebugExceptions#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/show_exceptions.rb:32:in 'ActionDispatch::ShowExceptions#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/railties-8.1.3/lib/rails/rack/logger.rb:41:in 'Rails::Rack::Logger#call_app'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/railties-8.1.3/lib/rails/rack/logger.rb:29:in 'Rails::Rack::Logger#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/remote_ip.rb:98:in 'ActionDispatch::RemoteIp#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/request_id.rb:34:in 'ActionDispatch::RequestId#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rack-3.2.6/lib/rack/method_override.rb:28:in 'Rack::MethodOverride#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rack-3.2.6/lib/rack/runtime.rb:24:in 'Rack::Runtime#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/activesupport-8.1.3/lib/active_support/cache/strategy/local_cache_middleware.rb:30:in 'ActiveSupport::Cache::Strategy::LocalCache::Middleware#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/server_timing.rb:61:in 'block in ActionDispatch::ServerTiming#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/server_timing.rb:26:in 'ActionDispatch::ServerTiming::Subscriber#collect_events'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/server_timing.rb:60:in 'ActionDispatch::ServerTiming#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/executor.rb:20:in 'ActionDispatch::Executor#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/propshaft-1.3.1/lib/propshaft/server.rb:37:in 'Propshaft::Server#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/static.rb:27:in 'ActionDispatch::Static#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rack-3.2.6/lib/rack/sendfile.rb:131:in 'Rack::Sendfile#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/actionpack-8.1.3/lib/action_dispatch/middleware/host_authorization.rb:143:in 'ActionDispatch::HostAuthorization#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler.rb:334:in 'Rack::MiniProfiler#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rack-cors-3.0.0/lib/rack/cors.rb:102:in 'Rack::Cors#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/rails_error_dashboard-0.5.11/lib/rails_error_dashboard/middleware/error_catcher.rb:31:in 'RailsErrorDashboard::Middleware::ErrorCatcher#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/railties-8.1.3/lib/rails/engine.rb:534:in 'Rails::Engine#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/puma-7.2.0/lib/puma/configuration.rb:296:in 'Puma::Configuration::ConfigMiddleware#call'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/puma-7.2.0/lib/puma/request.rb:103:in 'block in Puma::Request#handle_request'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/puma-7.2.0/lib/puma/thread_pool.rb:355:in 'Puma::ThreadPool#with_force_shutdown'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/puma-7.2.0/lib/puma/request.rb:102:in 'Puma::Request#handle_request'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/puma-7.2.0/lib/puma/server.rb:503:in 'Puma::Server#process_client'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/puma-7.2.0/lib/puma/server.rb:262:in 'block in Puma::Server#run'", "/home/gael/.local/share/mise/installs/ruby/4.0.2/lib/ruby/gems/4.0.0/gems/puma-7.2.0/lib/puma/thread_pool.rb:182:in 'block in Puma::ThreadPool#spawn_thread'"], cause_chain: nil}, {user_id: nil, request_url: "application.action_dispatch", request_params: "{}", user_agent: "Rails Application", ip_address: "application_layer", platform: "API", controller_name: "ProfilesController", action_name: nil, http_method: nil, hostname: nil, content_type: nil, request_duration_ms: nil, source: "application.action_dispatch"}
[ActiveJob] [RailsErrorDashboard::AsyncErrorLoggingJob] [a6fda7b8-d291-4dce-bb16-05909040d252] RailsErrorDashboard::Application Load (0.3ms) SELECT `rails_error_dashboard_applications`.* FROM `rails_error_dashboard_applications` ORDER BY `rails_error_dashboard_applications`.`id` ASC LIMIT 1 /*application='Parastats',job='RailsErrorDashboard%3A%3AAsyncErrorLoggingJob'*/
[ActiveJob] [RailsErrorDashboard::AsyncErrorLoggingJob] [a6fda7b8-d291-4dce-bb16-05909040d252] Performed RailsErrorDashboard::AsyncErrorLoggingJob (Job ID: a6fda7b8-d291-4dce-bb16-05909040d252) from Async(default) in 13.06ms
Bug Description
I have an index view with a search form with 6 fields that are mapped to url params.
For testing purpose, I added a condition on name param to raise an error in the controller:
So, when I search with
name=XXXit triggers an error and RED records it but it does not record the URL params which makes it difficult to debug.Also, I don't understand why the
user_agentis "Rails Application" andrequest_urlis "application.action_dispatch"?So far, I did not test in production, could it be something specific to development mode?
See the server log below..
Steps to Reproduce
Expected Behavior
I expect correct values for request_url, params and user agent:
Ideally, a clickable link in dashboard to reproduce the error.
Actual Behavior
empty params, wrong url and user agent.
Relevant Logs/Screenshots
Gem Version
0.5.11
Rails Version
8.1.3
Ruby Version
4.0.2
Database
MySQL
Additional Context
No response
Pre-submission Checklist