diff --git a/lms/djangoapps/certificates/management/commands/regenerate_user.py b/lms/djangoapps/certificates/management/commands/regenerate_user.py
index 7708877e0bbc89dfdb0593903eb8d7d7cf3a2e57..fb260403acd0cc810d57440eb951f86f6bfd6a59 100644
--- a/lms/djangoapps/certificates/management/commands/regenerate_user.py
+++ b/lms/djangoapps/certificates/management/commands/regenerate_user.py
@@ -5,7 +5,8 @@ import copy
 import logging
 
 from django.contrib.auth import get_user_model
-from django.core.management.base import BaseCommand
+from django.core.management.base import BaseCommand, CommandError
+from django.db.models import Q
 from opaque_keys.edx.keys import CourseKey
 
 from lms.djangoapps.badges.events.course_complete import get_completion_badge
@@ -75,10 +76,10 @@ class Command(BaseCommand):
         course_id = CourseKey.from_string(options['course'])
         user = options['username']
 
-        if '@' in user:
-            student = User.objects.get(email=user, courseenrollment__course_id=course_id)
-        else:
-            student = User.objects.get(username=user, courseenrollment__course_id=course_id)
+        kwargs = (Q(username=user) | Q(email=user)) & Q(courseenrollment__course_id=course_id)
+        student = User.objects.filter(kwargs).first()
+        if not student:
+            raise CommandError(f"User {user} does not exist.")
 
         course = modulestore().get_course(course_id, depth=2)