?
Solved

Content deployment job fails: field name already exists

Posted on 2013-06-13
3
Medium Priority
?
1,061 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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 2000 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

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Note:  There are two main ways to deploy InfoPath forms:  Server-side and directly through the SharePoint site.  Deploying a server-side InfoPath form means the form is approved by the Administrator, thus allowing greater functionality in the form. …
Pimping Sharepoint 2007 without Server-Side Code Part 1 One of my biggest frustrations with Sharepoint 2007 in the corporate world is that while good-intentioned managers lock down the more interesting capabilities of Sharepoint programming in…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…

752 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