Ask #1
Technically, donor sends 3 internal commands to recipient
1) recipientSyncData cmd
2) recipientSyncData cmd with returnAfterReachingDonorTimestamp
3) RecipientForgetMigration cmd
If those commands fails for any reason, the donor logs the error message as Tenant migration recipient command failed... with reason for the failure but doesn't log the command name that failed.
Sample log message
"Entering 'aborted' state.","attr":{"migrationId":{"uuid":{"$uuid":"0b5da69e-ce14-4c0e-8e26-32878f04bbcf"}},"tenantId":"","status":{"code":325,"codeName":"TenantMigrationAborted","errmsg":"Tenant migration recipient command failed :: caused by :: Failover happened during migration :: migrationId: 0b5da69e-ce14-4c0e-8e26-32878f04bbcf"}}}
Ask #2
When the oplog fetcher fails, the error message we are printing today is not clear which component in the recipient service threw that error.
{"code":50,"codeName":"MaxTimeMSExpired","errmsg":"Tenant migration recipient command failed :: caused by :: PlanExecutor error during aggregation :: caused by :: operation exceeded time limit"}