Imported milestones do not observe duplicate milestone title rules

All milestones within a root_namespace, whether group or project milestones, must have unique titles. This is intentional, to reduce confusion.

In the UI, when a user attempts to create a milestone with an existing title, they will see an error message and the milestone will not be created:

form_contains_error

However, when importing a group via file-based import, existing group milestones with duplicate names have their group_id updated to the new destination resource id, thereby "moving" from their original group to the newly imported group.

Validation steps

  1. Create a group, create a milestone for the group titled e.g. "17.0", create a subgroup, create a milestone for the subgroup titled e.g. "18.0", create a project in the subgroup, create a milestone for the project titled e.g "19.0"
  2. Open each milestones list page for the group, subgroup, and project for later reference.
  3. Export the group `settings > general > advanced > export group
  4. Once ready, download the export file
  5. Navigate to the group home page
  6. Create a new subgroup
  7. Select the "You can also import an existing group." option neat the top of the form
  8. Import the group with the "Import group from file" option, using the downloaded export file
  9. Once the import finishes, visit the milestones list page for the group, subgroup, and project and refresh each page.
  10. Observe the milestones for the group and subgroup are no longer visible.
  11. Visit the corresponding imported group and imported subgroup milestone list pages
  12. Observe the milestones now appear on these pages
Edited Jan 30, 2026 by Carla Drago
Assignee Loading
Time tracking Loading