Let me take a crack at technical documentation.
If you receive transient failures indicating "DumpsterOfDumpsterFolderMissingTransientException has occurred.":
1. Follow an unbroken link to the Batch Migration steps document.
2. Begin at un-numbered step; Heading "Prerequisite steps in Exchange Online"; remove everything you just spend hours on.
Get-MigrationBatch | ?{$_.MigrationType.ToString() -eq "PublicFolder"}
Remove-MigrationBatch <batchname> -Confirm:$false
3. Skip to sub-step 4; to remove the public folder mailboxes:
$hierarchyMailboxGuid = $(Get-OrganizationConfig).RootPublicFolderMailbox.HierarchyMailboxGuid
Get-Mailbox -PublicFolder | Where-Object {$_.ExchangeGuid -ne $hierarchyMailboxGuid} | Remove-Mailbox -PublicFolder -Confirm:$false -Force
Get-Mailbox -PublicFolder | Where-Object {$_.ExchangeGuid -eq $hierarchyMailboxGuid} | Remove-Mailbox -PublicFolder -Confirm:$false -Force
Get-Mailbox -PublicFolder -SoftDeletedMailbox | % {Remove-Mailbox -PublicFolder $_.PrimarySmtpAddress -PermanentlyDelete:$true -force}
4. Skip to Step 4: Create the public folder mailboxes online. Be sure to copy the commands to notepad first, or else you'll create new mailboxes that don't include the mappings - as carriage returns are included in the script commands. Re-run your commands from above if you poo'd this up.
Continue down the document, Creating your public folders from on-prem.
In sub-step 5 (In Exchange Online PowerShell, run the following commands to create the public folder migration endpoint and the public folder migration request), copy the commands to notepad. Edit the "New-MigrationBatch" command to include the "-ExcludeDumpsters" switch.
If the "$PFEndpoint = New-MigrationEndpoint" command errors out with: "Cannot find a recipient that has mailbox GUID 'guid', then have a coffee, a smoke, or what have you. The power of the cloud has not yet updated your recipient list with the GUID of the new PFmailbox yet. Early today, this took 45 minutes of trying until it was successful. ahhhh...billable time. Just keep on trying. It is the cloud, and yes - it will drive you to insanity. (Ironically, our local hospital's psyc-hold is actually on the top floor - bringing you even closer to the cloud).
Coffee's gone; attempt #5 - no dice. Might as well go pee and refill.
Back. Another whirl, and.....Bah! Nope. Pondering taking lunch, but really need to get this kicked off, as first availability to lockdown the folders is at 5pm, and it's 12:48 now.
10 minutes have gone by (albeit slowly) - so try #7 - still not there. Ok. Lunch it is.
Back from lunch; and after all of this, there's already a migration endpoint still defined. All this time we should have changed our New-MigrationBatch command to:
New-MigrationBatch -Name PublicFolderMigration -CSVData $bytes -SourceEndpoint PublicFolderEndpoint . . . . .
Although, given the recipient creation time-warp issue, I'm sure that error would still throw, even when attempting the New-MigrationBatch command.
and WALLA!!
Identity Status Type TotalCount
-------- ------ ---- ----------
PublicFolderMigration Syncing PublicFolder 2
Name StatusDetail TargetMailbox PercentComplete
---- ------------ ------------- ---------------
PublicFolderMailboxMigration910dab6c-f3a0-494... Synced PFMailbox2 95
PublicFolderMailboxMigration80abd8d5-b595-4ca... CopyingMessages PFMailbox1 27
Hopefully this helps anyone who gets the "DumpsterOfDumpster" errors when migrating.
Thanks for following along and happy weekend!