SharePoint 2016, Sharepoint 2013, Sharepoint 2010, Windows Server 2012, Sql Server 2012,2014,IIS, Active Directory,User Profile Service, Managed MetaData Service, Search Service, Topology, Web Application, IIS, Site collection, List, Library, PowerShell, office web app, Windows Authentication, NTLM, Kerberos, Saml, ADFS, Active Directory Import, MIM, Content deployment fails with SPInvalidPropertyException – SharePoint

Content deployment fails with SPInvalidPropertyException

Ah we spent tons of time to fix this issue and finally with the premier support I fix it.Content Deployment job failed with SPInvalidPropertyException.

Consider the following scenario:

– You have two MOSS 2007 farms with content deployment jobs that push content from a source farm to a destination farm.

– You upgrade both farms to SharePoint Server 2010

– You enable usage analytics processing only on the source farm

Once the monthly site usage total bandwidth exceeds 2 gigabytes, the next incremental content deployment job will fail with the following error:

The exception thrown was ‘Microsoft.SharePoint.SPInvalidPropertyException’: ‘Specified data type does not match the current data type of the property.’

Reason 
This issue occurs due to site bandwidth usage property became too big for SharePoint to handle. The property is on the root web object property bag, the property name is,

vti_siteusagetotalbandwidth
or
Since the destination farm’s usage analytics processing is disabled and the timer job has not been run yet, it is leaving the vti_siteusagetotalbandwidth property of the root web using the Int32 data type created by MOSS 2007. SharePoint Server 2010 uses Int64 data type which is stored as a string. The content deployment fails due to a conversion error from Int64 to Int32 when the value is bigger than Int32.MaxValue (2147483647).
RESOLUTION
 
Method  # 1( we follow this method and its works for us)
As a work around, the property needs to be reset on the source side. Below is the function to retrieve the value of the property.

function Get-Usage($weburl)
{
$spweb = Get-SPWeb $weburl
$result = $spweb.allproperties[“vti_siteusagetotalbandwidth“]
# Write-Host $result
return $result
}

$weburl = “http://qa.at.ford.com/
$PropertyValue = Get-Usage($weburl)
Method  # 2 ( I never tested this)
Using the following PowerShell script executed in a SharePoint Administration console you can convert vti_siteusagetotalbandwidth property to String in every site collection in a farm. You have to execute it once on each destination farm after they are upgraded from MOSS 2007 to avoid the SPInvalidPropertyException.

get-spsite -limit all | % {
write-host $_.Url
$web = $_.RootWeb
$item = $web.AllProperties[“vti_siteusagetotalbandwidth”]
if ($item -ne $null -and $item.GetType().Name -ne “String”) {

$itemstr = $item.toString();
Write-host “Converting value  $itemstr at  $($web.Url) “;
$web.AllProperties.Remove(“vti_siteusagetotalbandwidth”);
$web.Update();
$web.AllProperties.Add(“vti_siteusagetotalbandwidth”,[System.String]$itemstr);
$web.Update();
}
$web.Close();
$site.Close();
}

MORE INFORMATION

The maximum value that can be handled is, 2,147,483,647

Microsoft is going to request a hot fix for this issue.

kb#2671324

You may also like...

Leave a Reply

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