diff --git a/lms/djangoapps/ccx/migrations/0006_set_display_name_as_override.py b/lms/djangoapps/ccx/migrations/0006_set_display_name_as_override.py
index b66ce2754e709dbc4fbf7deea73130a4a889b8aa..72a685c839b4271f00f59629d6ec735d268bfab8 100644
--- a/lms/djangoapps/ccx/migrations/0006_set_display_name_as_override.py
+++ b/lms/djangoapps/ccx/migrations/0006_set_display_name_as_override.py
@@ -3,6 +3,7 @@
 from __future__ import unicode_literals
 
 from django.db import migrations
+from django.http import Http404
 
 import json
 import logging
@@ -28,7 +29,11 @@ def save_display_name(apps, schema_editor):
 
     # Create `display_name` overrides for these CCX courses
     for ccx in ccx_list:
-        course = get_course_by_id(ccx.course_id, depth=None)
+        try:
+            course = get_course_by_id(ccx.course_id, depth=None)
+        except Http404:
+            log.error('Root course %s not found. Skipping saving course display name', ccx.course_id)
+            continue
         display_name = course.fields['display_name']
         display_name_json = display_name.to_json(ccx.display_name)
         serialized_display_name = json.dumps(display_name_json)