NoMethodError: undefined method 'has_test_runner' for nil (NoMethodError)
- Dominant language
- Ruby
- Stars
- 548
- Forks
- 168
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 28
Description
## Error
```
undefined method 'has_test_runner' for nil (NoMethodError)
exercise: submission.exercise.has_test_runner,
^^^^^^^^^^^^^^^^
```
## Stack trace
```
app/controllers/api/solutions/submission_test_runs_controller.rb:14 in show
action_controller/metal/basic_implicit_render.rb:6 in send_action
abstract_controller/base.rb:224 in process_action
action_controller/metal/rendering.rb:165 in process_action
abstract_controller/callbacks.rb:259 in block in AbstractController::Callbacks#process_action
active_support/callbacks.rb:121 in block in ActiveSupport::Callbacks#run_callbacks
i18n.rb:353 in with_locale
app/controllers/application_controller.rb:57 in switch_locale!
active_support/callbacks.rb:130 in block in ActiveSupport::Callbacks#run_callbacks
turbo-rails.rb:24 in Turbo.with_request_id
```
## Tracking Details
- **Project**: exercism-rails
- **Sentry**: [NoMethodError: undefined method 'has_test_runner' for nil (NoMethodError)](https://thalamus-ai.sentry.io/issues/145735417/)
- **Culprit**: API::Solutions::SubmissionTestRunsController#show
- **First seen:** Sep 8, 2026
Contributor guide
Research direction
Start with app/controllers/api/solutions/submission_test_runs_controller.rb:14 and trace why submission.exercise is nil for the failing show action. Use the Sentry stack trace to understand the request path and inspect nearby controller conventions. Done means this endpoint no longer raises the reported NoMethodError for the affected submission, with a regression test if an appropriate existing test location is found.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rails, ruby
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100