Error using Move-SPSite cmdlet

This post discusses an error using the Move-SPSite cmdlet.

Move-SPSite : Cannot insert duplicate key row in object 'dbo.AllSites' with unique index 'Sites_Id'. The duplicate key value is <GUID>.

Let’s say you have 1 Web Application with 2 content databases:
– Database 1
– Database 2

Database 1 contains a site collection with the following URL:
For some reason, you moved the site collection using the following cmdlet:

Move-SPSite <a href=""></a> -DestinationDatabase "Database 2" -Confirm:$false

Error using Move-SPSite

So far so good. Now let’s say you want to move this site collection back to Database 1.
You would run:

Move-SPSite <a href=""></a> -DestinationDatabase "Database 1" -Confirm:$false

This produces the following error:

Error using Move-SPSite

This is happening because the site collection has not been completely deleted from the content database.
When you run Move-SPSite, the site collection gets moved to the new content database.
However, the site collection in the source Content Database was not completely removed. The site collection “Deleted” flag was set to 1.

This means it is scheduled for deletion. The Gradual site delete timer jobs will delete the site collection from the content database. By default, this timer job runs once a day. To ensure the site is completely deleted, run the timer job. As this timer job runs for each Web Application, make sure you select the correct Web Application

Error using Move-SPSite 3

After you ran the Gradual Site Delete timer job, you will be able to move the site collection back to Database 1.

1 thought on “Error using Move-SPSite cmdlet

  • You are the man!!! I was facing this same problem using the object model. Specifically SPContentDatabase.Move(). Now I just need to run this timer job programatically and it should work. Thanks!

Leave a Reply to Gene Cancel reply

Your email address will not be published. Required fields are marked *