Solved

Content deployment job fails: field name already exists

Posted on 2013-06-13
3
966 Views
Last Modified: 2013-08-01
Hi,

I have a content deployment job that fails. It seems to have something to do with a Field name that already exists. The object is User Information List (at least that's what it says in the SP2010 Central admin event details).

How can I fix this? All help greatly appreciated :)

Here's the info from the event log:
Log Name:      Application
Source:        Microsoft-SharePoint Products-Web Content Management
Date:          13.06.2013 09:44:45
Event ID:      4958
Task Category: Content Deployment
Level:         Error
Keywords:      
User:          DOMAIN\sp_farm
Computer:      spserver.domain.local
Description:
Publishing: Content deployment job failed. Error: 'Microsoft.SharePoint.SPException: Field name already exists.

The name used for this field is already used by another field in the list.  Select another name and try again. ---> System.Runtime.InteropServices.COMException (0x81020013): Field name already exists.

The name used for this field is already used by another field in the list.  Select another name and try again.<nativehr>0x81020013</nativehr><nativestack></nativestack>
   at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateField(String bstrUrl, String bstrListName, String bstrXML)
   at Microsoft.SharePoint.Library.SPRequest.UpdateField(String bstrUrl, String bstrListName, String bstrXML)
   --- End of inner exception stack trace ---
   at Microsoft.SharePoint.SPGlobal.HandleComException(COMException comEx)
   at Microsoft.SharePoint.Library.SPRequest.UpdateField(String bstrUrl, String bstrListName, String bstrXML)
   at Microsoft.SharePoint.SPField.set_SchemaXml(String value)
   at Microsoft.SharePoint.Deployment.ListSerializer.CreateOrUpdateField(SPList list, String fieldName, XmlNode fieldNode)
   at Microsoft.SharePoint.Deployment.ListSerializer.UpdateListFields(SPList list, Dictionary`2 listMetaData)
   at Microsoft.SharePoint.Deployment.ListSerializer.SetObjectData(Object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector)
   at Microsoft.SharePoint.Deployment.XmlFormatter.CallSetObjectData(Object obj, SerializationInfo objectData, ISerializationSurrogate surrogate, ISurrogateSelector selector)
   at Microsoft.SharePoint.Deployment.XmlFormatter.ParseObject(Type objectType, Boolean isChildObject)
   at Microsoft.SharePoint.Deployment.XmlFormatter.DeserializeObject(Type objectType, Boolean isChildObject, DeploymentObject envelope)
   at Microsoft.SharePoint.Deployment.XmlFormatter.Deserialize(Stream serializationStream)
   at Microsoft.SharePoint.Deployment.ObjectSerializer.Deserialize(Stream serializationStream)
   at Microsoft.SharePoint.Deployment.SPImport.DeserializeObjects()
   at Microsoft.SharePoint.Deployment.SPImport.Run()
   at Microsoft.SharePoint.Publishing.Administration.ContentDeploymentJob.DoImport()
   at Microsoft.SharePoint.Publishing.Administration.ContentDeploymentJob.ExecuteJob(String callingTimerJobName, Guid timerJobId)
   at Microsoft.SharePoint.Publishing.Administration.ContentDeploymentJob.InternalRun(Boolean runAsynchronously, String timerJobName, Guid timerJobId)
   at Microsoft.SharePoint.Publishing.Administration.ContentDeploymentJobDefinition.Execute(Guid targetInstanceId)'
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-SharePoint Products-Web Content Management" Guid="{0119F589-72D7-4EC3-ADF5-1F082061E832}" />
    <EventID>4958</EventID>
    <Version>14</Version>
    <Level>2</Level>
    <Task>2</Task>
    <Opcode>0</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="2013-06-13T07:44:45.959986100Z" />
    <EventRecordID>260635</EventRecordID>
    <Correlation ActivityID="{6A74D576-5B2C-44EB-9A0E-30FD8C277859}" />
    <Execution ProcessID="3144" ThreadID="15336" />
    <Channel>Application</Channel>
    <Computer>spserver.domain.local</Computer>
    <Security UserID="S-1-5-21-2812511754-123718817-1394069073-3146" />
  </System>
  <EventData>
    <Data Name="string0">Microsoft.SharePoint.SPException: Field name already exists.

The name used for this field is already used by another field in the list.  Select another name and try again. ---&gt; System.Runtime.InteropServices.COMException (0x81020013): Field name already exists.

The name used for this field is already used by another field in the list.  Select another name and try again.&lt;nativehr&gt;0x81020013&lt;/nativehr&gt;&lt;nativestack&gt;&lt;/nativestack&gt;
   at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateField(String bstrUrl, String bstrListName, String bstrXML)
   at Microsoft.SharePoint.Library.SPRequest.UpdateField(String bstrUrl, String bstrListName, String bstrXML)
   --- End of inner exception stack trace ---
   at Microsoft.SharePoint.SPGlobal.HandleComException(COMException comEx)
   at Microsoft.SharePoint.Library.SPRequest.UpdateField(String bstrUrl, String bstrListName, String bstrXML)
   at Microsoft.SharePoint.SPField.set_SchemaXml(String value)
   at Microsoft.SharePoint.Deployment.ListSerializer.CreateOrUpdateField(SPList list, String fieldName, XmlNode fieldNode)
   at Microsoft.SharePoint.Deployment.ListSerializer.UpdateListFields(SPList list, Dictionary`2 listMetaData)
   at Microsoft.SharePoint.Deployment.ListSerializer.SetObjectData(Object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector)
   at Microsoft.SharePoint.Deployment.XmlFormatter.CallSetObjectData(Object obj, SerializationInfo objectData, ISerializationSurrogate surrogate, ISurrogateSelector selector)
   at Microsoft.SharePoint.Deployment.XmlFormatter.ParseObject(Type objectType, Boolean isChildObject)
   at Microsoft.SharePoint.Deployment.XmlFormatter.DeserializeObject(Type objectType, Boolean isChildObject, DeploymentObject envelope)
   at Microsoft.SharePoint.Deployment.XmlFormatter.Deserialize(Stream serializationStream)
   at Microsoft.SharePoint.Deployment.ObjectSerializer.Deserialize(Stream serializationStream)
   at Microsoft.SharePoint.Deployment.SPImport.DeserializeObjects()
   at Microsoft.SharePoint.Deployment.SPImport.Run()
   at Microsoft.SharePoint.Publishing.Administration.ContentDeploymentJob.DoImport()
   at Microsoft.SharePoint.Publishing.Administration.ContentDeploymentJob.ExecuteJob(String callingTimerJobName, Guid timerJobId)
   at Microsoft.SharePoint.Publishing.Administration.ContentDeploymentJob.InternalRun(Boolean runAsynchronously, String timerJobName, Guid timerJobId)
   at Microsoft.SharePoint.Publishing.Administration.ContentDeploymentJobDefinition.Execute(Guid targetInstanceId)</Data>
  </EventData>
</Event>

Open in new window

0
Comment
Question by:cegeland
  • 2
3 Comments
 
LVL 8

Expert Comment

by:vaderj
ID: 39244438
Content deployment is a fickle b!***.... I have been battling it myself for weeks now.  For your situation, I would recommend removing and starting fresh.  How are your path and jobs setup?
If possible, deploy full site collections at a time, don't break it up.  Content deployment gets broken when you have jobs with over lapping objects.
What we did too clear (most) of our issues was:
Destination:
Export existing security and alerts
Detach old content database
Create a new content database with an EMPTY site collection (that you choose the template at a later date)

 Source:
Remove all content deployment paths related to this web app
 Create a new path - make sure your service account had permissions!
Create a new job that deploys the entire site collection.
 If your destination server is in a different domain, do not deploy usernames.
Also, ensure you have 2x the free space of the size of your content database on both temp drives, plus the receiving sql server.
Good luck !
0
 

Author Comment

by:cegeland
ID: 39245753
Thanks for your reply.

We have a source site which requires login and a public facing site collection wich is a copy of the source collection only that parts of the site collection has anonymous access enabled. Long story short the best way to deal with the anonymous access was to use a content content deployment job. If I remember correctly it had something to do with "browser file handling". The content deplyment job copies the entire site collection. Everything has worked perfectly for a year or so - until yesterday.

Is there a way to find out which fields are causing the problem? It looks like it is only 3 fields and maby there is a way to delete them?
0
 
LVL 8

Accepted Solution

by:
vaderj earned 500 total points
ID: 39245800
You can't just delete the items because then the content deployment job will be confused as there was no change token (a content deployment thing) issued. Since its the entire site collection, you might just delete the destination site collection and redeploy. We actually had the same happen to our customer facing site and my team and I were up until 4am (it's a big site) getting the thing redeployed.
My recommendation is to start with a fresh content db, but otherwise delete the site collection and kick off the deployment job, messing with the columns might work, but it caused us nothing but heart ache and a very long day.
0

Featured Post

Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I have just recently built a new SharePoint 2007 farm on a complete Windows 2008 R2 server platform and part of my standard build procedure is to implement a warm up routine, usually in the form of a script that is scheduled every morning to launch …
Last week I faced a strange issue recently, i have deployed SharePoint 2003 servers for one project and one of the requirements was to open SharePoint site from same server. when i was trying to open site from the same server i was getting authentic…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now