This post was most recently updated on January 14th, 2019.Reading Time: 3 minutes.
This post describes the actual, working and fast process of removing a site collection in SharePoint Online using the Remove-SPODeletedSite commandlet in SharePoint Online Management Shell (a flavor of PowerShell).
Sometimes you need to get rid of a site collection you’ve created in SharePoint Online. The most typical example perhaps being removing the team site created for a group of people working together. That’s pretty simple and there are a few ways of doing that. For example, you might just go ahead, and delete the site from Site Settings (see below).
Or maybe you’re a smart admin, and you go and remove it from the SharePoint Administration (below).
Or perhaps you’re the glorious IT Pro, simply love PowerShell, and you just run this:
Remove-SPOSite -Identity "[url]"
However, sometimes you need to recreate a new site using the same url as the one you removed – and that’s not going to be possible. No matter which way you try – PowerShell, API or even through the GUI. You’ll run into issues, something like this:
Or even more fun version:
Microsoft.SharePoint.Client.ServerException: Unknown Error at Microsoft.SharePoint.Client.ClientRequest.ProcessResponseStream(Stream responseStream) at Microsoft.SharePoint.Client.ClientRequest.ProcessResponse() at Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryToServer(ChunkStringBuilder sb) at Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()
That’s descriptive, right? Doesn’t help you much, or tell what to do at all.
Why is it failing?
Well, after you remove the site collection, it actually goes to the second-stage recycle bin. The bad thing is, that this recycle bin is NOT accessible using web browser, but only by PowerShell. SharePoint Online still reservers that url for the site, though, so you can’t create a new one with the same url!
This will hold true until after 30 days, when the recycle bin is finally emptied. And boy, is that a long time to wait to be able to create a new site you’d need right now!
Luckily, there’s 2 workarounds available for all the admin users. The new admin center, and some great PowerShell commandlets to get rid of the deleted site!
In the Preview of the new SharePoint Online Administration console (https://[tenant]-admin.sharepoint.com/_layouts/15/online/AdminHome.aspx), there’s now the option to remove the sites via the GUI as well! This “Deleted Sites” can be found from the following address:
So now there’s a GUI solution. Great – but see below for the PowerShell solution!
Solution: Remove-SPODeletedSite -Powershell commandlet
PowerShell to the rescue! You can always remove the site collection using PowerShell. The cmdlets are something like this (replace the urls):
Connect-SPOService -Url "[tenant-admin.sharepoint.com]" Remove-SPOSite -Identity "[url]" -NoWait Remove-SPODeletedSite -Identity "[url]" -NoWait
And you’re done! You should be able to create the new site collection with the old url.
How to completely empty the second-stage site collection recycle bin?
Okay, so maybe you know there’s nothing you want to save from the deleted SharePoint Site Collections and you just want to remove all of them? Luckily, that’s easy. -See the code below!
Connect-SPOService -Url "[tenant-admin.sharepoint.com]" Get-SPODeletedSite | Remove-SPODeletedSite
The code simply loops through your deleted sites and passes (“pipes”) all of them to Remove-SPODeletedSite. And boom! You have nothing in your second-stage site collection recycle bin.
Don’t be alarmed if this takes a long time – if you have dozens of sites in the second-stage recycle bin, it might easily take 15 minutes to finish the command.
That’s normal – get a coffee, and come back to check if the command finished successfully!
Check these out for some background info:
He's been a developer from 2004 (starting with PHP and Java), and he's been bending and twisting SharePoint into different shapes since MOSS. Nowadays he's not only working on SharePoint, but also on .NET projects, Azure, Office 365 and a lot of other stuff.
This is his personal professional (e.g. professional, but definitely personal) blog.
Latest posts by Antti K. Koskela (see all)
- IE11 fails to load a (server-side) Blazor web app - November 13, 2019
- How to instantiate your DbContext outside your Data project? - November 11, 2019
- Another year, another Hacktoberfest (2019)! - November 1, 2019