ActiveRecord::RecordInvalid: Validation failed: Exercise must exist (ActiveRecord::RecordInvalid)
- Dominant language
- Ruby
- Stars
- 548
- Forks
- 168
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 22
Description
## Error
```
Validation failed: Exercise must exist (ActiveRecord::RecordInvalid)
```
## Stack trace
```
active_record/validations.rb:84 in raise_validation_error
active_record/validations.rb:55 in save!
active_record/transactions.rb:313 in block in ActiveRecord::Transactions#save!
active_record/transactions.rb:365 in block in ActiveRecord::Transactions#with_transaction_returning_status
active_record/connection_adapters/abstract/database_statements.rb:342 in transaction
active_record/transactions.rb:361 in with_transaction_returning_status
active_record/transactions.rb:313 in save!
active_record/suppressor.rb:56 in save!
active_record/persistence.rb:906 in block in ActiveRecord::Persistence#update!
active_record/transactions.rb:365 in block in ActiveRecord::Transactions#with_transaction_returning_status
```
## Tracking Details
- **Project**: exercism-rails
- **Sentry**: [ActiveRecord::RecordInvalid: Validation failed: Exercise must exist (ActiveRecord::RecordInvalid)](https://thalamus-ai.sentry.io/issues/145735340/)
- **Culprit**: API::SolutionsController#sync
- **First seen:** Sep 8, 2026
Contributor guide
Research direction
Start at API::SolutionsController#sync and trace the save! call through the listed ActiveRecord files, using the Sentry event to reproduce the failure. Determine why the Exercise association is absent and add a regression check; done means the sync no longer raises this validation error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rails, ruby
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100