As part of Tridion upgrade from 2009 SP1 to 2013, we are trying to upload the .NET Template assembly using TcmUploadAssembly.exe as per migration documentaion, but it's failing to upload and we are getting following exceptions, does anyone know what will be the problem?


TemplateAssemblyStorage: Error occurred in PerformStoreTemplateAssembly

Component: Templating
Errorcode: 0


Unable to save (Push Category Keyword Heirarchy In Package 'tcm:0-0-0').
Link to Schema has invalid value.
Invalid context Publication specified in URI: tcm:23-1394-8. Expecting: 24.

Component: Templating
Errorcode: 2049

StackTrace Information Details:
 at Tridion.ContentManager.Utils.AssertSameContextRepositories(TcmUri uri1, TcmUri uri2)
 at  Tridion.ContentManager.ContentManagement.RepositoryLocalObject.AssertValidContextPublication(TcmUri uri)
 at Tridion.ContentManager.IdentifiableObject.AssertValidLink(Link link)
 at Tridion.ContentManager.Utilities.ThrowInvalidLinkException(Link link, KernelException innerException)
 at Tridion.ContentManager.IdentifiableObject.AssertValidLink(Link link)
 at Tridion.ContentManager.IdentifiableObject.AssertValidLinks(IEnumerable`1 links)
 at Tridion.ContentManager.IdentifiableObject.AssertValidLinks()
 at Tridion.ContentManager.IdentifiableObject.OnSaving(SaveEventArgs eventArgs)
 at Tridion.ContentManager.ContentManagement.RepositoryLocalObject.OnSaving(SaveEventArgs eventArgs)
 at Tridion.ContentManager.ContentManagement.VersionedItem.OnSaving(SaveEventArgs eventArgs)
 at Tridion.ContentManager.CommunicationManagement.Template.OnSaving(SaveEventArgs eventArgs)
 at Tridion.ContentManager.IdentifiableObject.Save(SaveEventArgs eventArgs)
 at Tridion.ContentManager.ContentManagement.VersionedItem.Save(Boolean checkInAfterSave)
 at Tridion.ContentManager.Templating.Assembly.DotNetTemplate.Save()
 at Tridion.ContentManager.Templating.Assembly.DotNetTemplate.Save()
 at Tridion.ContentManager.Templating.Assembly.TemplateAssemblyStorage.StoreTemplateAssembly(Byte[] assemblyContents, Byte[] pdbContents, String assemblyFileName, String targetFolder, String associateBundle)
 at Tridion.ContentManager.Templating.Assembly.TemplateAssemblyStorage.PerformStoreTemplateAssembly(Session session, Byte[] assemblyContents, Byte[] pdbContents, String assemblyFileName, String targetFolder, String associateBundle)


I have WebDAV URL of Parameter Schema in the code as follows:


Do I need to remove it before uploading DLL?

  • Can you post the full command (with args) that you are executing? – Ant P Feb 5 '14 at 17:28
  • 2
    You may need to re-create the parameter schema in publication 23, and link this new schema to the TBB "Push Category Keyword Heirarchy In Package". Check the source code and remove the reference to the parameter schema on this TBB should allow you to upload the assembly correctly, then you can fix the link to the new param schema. – Philippe Conil Feb 5 '14 at 17:54
  • thanks, i will try this way, i have webdav url of parameter schema in the code as below, [TcmTemplateParameterSchema("/webdav/010%20Schemas/Building%20Blocks/System/Schemas/Parameter%20Schemas/Item%20Reference.xsd")] Do i need to remove it before uploading DLL? – Manoj Sonawane Feb 5 '14 at 21:55
  • I tried the steps you mentioned, it worked only when i removed the reference of webdav url of paramter schema from code, after first upload (without webdav url) I recreated parameter schema and linked it again and tried to upload assmebly again with webdav url for parameter schema in code, it failed again :( – Manoj Sonawane Feb 6 '14 at 19:48
  • 2
    I assume the templates are being uploaded to publication "020 Templates" (tcm:0-24-1), so your webdav path should also be for that publication instead of the "010 Schemas" publication (tcm:0-23-1). Basically, the links to other Tridion items must be in the same context - please note that the schema can be created in 010 Schemas (probably even should be created there) but the pointer to it must be in the same context as the item you're trying to save. – Nuno Linhares Feb 6 '14 at 22:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.