Forum Discussion
Teams Migration for New Private Channels Stalls
How do we kick off the Migration Process for a retry after we have fixed the Ownerless Channels?
I added an Owner a few days ago and the status is reporting the same as it was'
MigrationStatus : RequiresAdminAttention
LastChecked :
Details : {"totalChannels":320,"migratedChannels":318,"failedChannels":0,"ownerlessChannels":1,"re
mainingChannels":1,"ownerlessChannelsDetails":[{"channelThreadId":"19:55543bbd8cc745e6bd
fe8d453404b268@thread.skype","teamId":"0a1c1ea6-906d-4ed6-ae66-184cf0d97e2d"}]}
MigrationStartTimeStamp : 2/9/2026 11:26:42 PM
What is the "remainingChannels" and how do I fix that? Unless the remaining is the Ownerless, in which case the Total doesn't add up.
- TonyRedmondMay 13, 2026MVP
In the article, I describe that I found my one "remainingchannel" to be a private channel belonging to an archived team. You can use the script referenced in the article to scan private channels to see if something else comes up.
As to restarting the migration, it's a black box and you'll have to wait for the migration job to retry. That process is managed by the Teams development group.
- Forrest_HMay 13, 2026Steel Contributor
Thanks Tony. I had to remove the -ResultSize 5000 from the Get-Team array filler. PowerShell complained about not being able to find a matching parameter.
Further along I got another error "Get-TeamAllChannel:
Line |
4 | … [array]$Channels = Get-TeamAllChannel -GroupId $Team.GroupId -Member …
| ~~~~~~~~~~~~~
| Cannot bind argument to parameter 'GroupId' because it is null."
I'll keep trying to figure out what's going on.
- TonyRedmondMay 13, 2026MVP
Are there any objects in the $Teams array? There should be after Get-Team runs (the error with ResultsSize was a bug that I fixed days ago, so I am not sure why you see it still). Each team has a groupId property, and the loop uses that property to find the channels. Check $Teams[0].GroupId and it should return a group id.