Unable to retry or recover from FAILED status during placeholder user reassignment

Summary

When a placeholder user reassignment fails during a GitLab Migration (Direct Transfer), the Import::SourceUser record gets stuck in a FAILED status with no way to retry or recover. The reassignmentError field is null, providing no insight into why the failure occurred.

Problem

After a GitLab self-managed to GitLab.com migration, users attempting to reassign placeholder users to real users encounter:

  • Error message: "Import source user has an invalid status for this operation"
  • Status: The Import::SourceUser record is in FAILED status
  • Missing information: reassignmentError is null despite the failed status

GraphQL Response Example

{
  "importSourceUserReassign": {
    "errors": ["Import source user has an invalid status for this operation"],
    "importSourceUser": {
      "status": "FAILED",
      "reassignmentError": null
    }
  }
}

Current Behavior

  • Reassignment fails silently, leaving the source user in FAILED status
  • No error details are captured in reassignmentError
  • No UI/API option to retry the failed reassignment
  • No way to cancel/reset the failed reassignment to start fresh
  • Users are permanently blocked from completing the reassignment workflow

Expected Behavior

  1. Error capture: When reassignments fail, populate reassignmentError with meaningful details
  2. Retry capability: Allow users to retry failed reassignments via UI/API
  3. Cancel/reset option: Provide ability to cancel a failed reassignment and start fresh
  4. State validation: Prevent source users from getting stuck in unrecoverable FAILED state

Proposal

  1. Implement better error capture when reassignments fail
  2. Add UI/API support for retrying or canceling failed reassignments
  3. Add validation to prevent source users from getting stuck in FAILED state without recovery options

Screenshots

failed

Edited by 🤖 GitLab Bot 🤖