exercism / exercism/website

ActiveRecord::RecordInvalid: Validation failed: Exercise must exist (ActiveRecord::RecordInvalid)

Open
#9,477 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.