Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Content deployment job fails: field name already exists

Posted on 2013-06-13
3
Medium Priority
?
1,108 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 9

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 9

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

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

Question has a verified solution.

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

I recently came across an issue with a MOSS 2007 deployment where access into some sub-sites were denied, even for the MOSS farm administrators. A bit of background to the setup of this MOSS farm; this was a three server setup, consisting of a fr…
For SharePoint sites, particularly public-facing ones, there are times when adding JavaScript, Meta Tags, CSS Styles or other content to the page <head> section is more practical than modifying master pages.  For instance, you could add the jQuery l…
Video by: ITPro.TV
In this episode Don builds upon the troubleshooting techniques by demonstrating how to properly monitor a vSphere deployment to detect problems before they occur. He begins the show using tools found within the vSphere suite as ends the show demonst…
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…

886 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