Solved

Content deployment job fails: field name already exists

Posted on 2013-06-13
3
987 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

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

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. …
SharePoint Designer 2010 has tools and commands to do everything that can be done with web parts in the browser, and then some – except uploading a web part straight into a page that is edited in SPD. So, can it be done? Scenario For a recent pr…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

809 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