instructure/canvas-lms · error · ActiveRecord::RecordNotFound
Unable to find a submission with that attempt
Error message
Unable to find a submission with that attempt
What it means
Guard in Filters::QuizSubmissions#retrieve_quiz_submission_attempt!: model_for_attempt(attempt) returned nil, i.e. the quiz submission has no version/versioned model corresponding to the requested attempt number. Raised when fetching a quiz submission for a specific attempt that doesn't exist.
Solutions
- Use an attempt number between 1 and the submission's actual attempt count
- Fetch the submission's attempt list first instead of hard-coding an attempt value
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at app/controllers/filters/quiz_submissions.rb:61 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of instructure/canvas-lms@1c9f0bb801 (2026-09-15).
Data as JSON: /api/errors/98025edac5ef0749.
Report an issue: GitHub.
Appendix: source
Thrown at app/controllers/filters/quiz_submissions.rb:61
else
query[:id] = id.to_i
end
unless (@quiz_submission = scope.where(query).first)
raise ActiveRecord::RecordNotFound, "Quiz Submission not found"
end
@quiz_submission.ensure_question_reference_integrity!
@quiz_submission
end
def require_active_quiz_submission
require_quiz_submission(active: true)
end
def retrieve_quiz_submission_attempt!(attempt)
unless (@quiz_submission = @quiz_submission.model_for_attempt(attempt.to_i))
raise ActiveRecord::RecordNotFound, "Unable to find a submission with that attempt"
end
end
def prepare_service
participant = Quizzes::QuizParticipant.new(@current_user, temporary_user_code)
participant.access_code = params[:access_code]
participant.ip_address = request.remote_ip
participant.validation_token = params[:validation_token]
@service = Quizzes::QuizSubmissionService.new(participant)
end
end
View on GitHub (pinned to 1c9f0bb801)