Skip to content

Modulestore Migrator can't import Grape Ape into Content Libraries #38501

@ormsbee

Description

@ormsbee

There's a uniqueness constraint violation. I think this might be related to having a DAG in the course?

I don't think Grape Ape is publicly available. This is mostly a reminder for myself to look into later.

cms-1          | 2026-05-01 02:34:03,023 ERROR 1255 [cms.djangoapps.modulestore_migrator.tasks] [user 3] [ip 150.171.73.16] tasks.py:658 - Failed: {source_data.migration}
cms-1          | Traceback (most recent call last):
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute
cms-1          |     return self.cursor.execute(sql, params)
cms-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/backends/mysql/base.py", line 76, in execute
cms-1          |     return self.cursor.execute(query, args)
cms-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/MySQLdb/cursors.py", line 179, in execute
cms-1          |     res = self._query(mogrified_query)
cms-1          |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/MySQLdb/cursors.py", line 330, in _query
cms-1          |     db.query(q)
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/MySQLdb/connections.py", line 286, in query
cms-1          |     _mysql.connection.query(self, query)
cms-1          | MySQLdb.IntegrityError: (1062, "Duplicate entry '11-1534' for key 'modulestore_migrator_modulestoreblockmigration.modulestore_migrator_mod_overall_migration_id_sou_d0de4cc5_uniq'")
cms-1          | 
cms-1          | The above exception was the direct cause of the following exception:
cms-1          | 
cms-1          | Traceback (most recent call last):
cms-1          |   File "/openedx/edx-platform/cms/djangoapps/modulestore_migrator/tasks.py", line 649, in bulk_migrate_from_modulestore
cms-1          |     _create_migration_artifacts_incrementally(
cms-1          |   File "/openedx/edx-platform/cms/djangoapps/modulestore_migrator/tasks.py", line 1099, in _create_migration_artifacts_incrementally
cms-1          |     models.ModulestoreBlockMigration.objects.create(
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
cms-1          |     return getattr(self.get_queryset(), name)(*args, **kwargs)
cms-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/models/query.py", line 665, in create
cms-1          |     obj.save(force_insert=True, using=self.db)
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/model_utils/models.py", line 43, in save
cms-1          |     super().save(*args, **kwargs)
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/models/base.py", line 902, in save
cms-1          |     self.save_base(
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/models/base.py", line 1008, in save_base
cms-1          |     updated = self._save_table(
cms-1          |               ^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/models/base.py", line 1169, in _save_table
cms-1          |     results = self._do_insert(
cms-1          |               ^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/models/base.py", line 1210, in _do_insert
cms-1          |     return manager._insert(
cms-1          |            ^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
cms-1          |     return getattr(self.get_queryset(), name)(*args, **kwargs)
cms-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/models/query.py", line 1873, in _insert
cms-1          |     return query.get_compiler(using=using).execute_sql(returning_fields)
cms-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/models/sql/compiler.py", line 1882, in execute_sql
cms-1          |     cursor.execute(sql, params)
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/debug_toolbar/panels/sql/tracking.py", line 235, in execute
cms-1          |     return self._record(super().execute, sql, params)
cms-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/debug_toolbar/panels/sql/tracking.py", line 160, in _record
cms-1          |     return method(sql, params)
cms-1          |            ^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/backends/utils.py", line 122, in execute
cms-1          |     return super().execute(sql, params)
cms-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/backends/utils.py", line 79, in execute
cms-1          |     return self._execute_with_wrappers(
cms-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
cms-1          |     return executor(sql, params, many, context)
cms-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/backends/utils.py", line 100, in _execute
cms-1          |     with self.db.wrap_database_errors:
cms-1          |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/utils.py", line 91, in __exit__
cms-1          |     raise dj_exc_value.with_traceback(traceback) from exc_value
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute
cms-1          |     return self.cursor.execute(sql, params)
cms-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/django/db/backends/mysql/base.py", line 76, in execute
cms-1          |     return self.cursor.execute(query, args)
cms-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/MySQLdb/cursors.py", line 179, in execute
cms-1          |     res = self._query(mogrified_query)
cms-1          |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/MySQLdb/cursors.py", line 330, in _query
cms-1          |     db.query(q)
cms-1          |   File "/openedx/venv/lib/python3.12/site-packages/MySQLdb/connections.py", line 286, in query
cms-1          |     _mysql.connection.query(self, query)
cms-1          | django.db.utils.IntegrityError: (1062, "Duplicate entry '11-1534' for key 'modulestore_migrator_modulestoreblockmigration.modulestore_migrator_mod_overall_migration_id_sou_d0de4cc5_uniq'")

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions