After upgrading to 5.3 to 2011, I am getting "tcdl is undeclared prefix" and publishing fails. but this issue is with only one of the environment, in another environment its is working perfectly.

I am unable to figure it out.

Have any body faced this issue earlier and have solution?

If we run it from Template Builder it is working.

  • 1
    Can you provide a bit more information to help us along please? It is only specific Pages or Components that are failing? Do you know at which stage of the Publishing it is failing? Can you preview the Page / Component Presentation? May 9, 2013 at 12:54

4 Answers 4


I have seen this in a 5.3 to 2009 upgrade, and at the time it was due to Tridion adding <tcdl:ComponentPresentation> wrappers to CPs, and having custom code that loaded the CP as an XML Document.

We worked around it by changing the custom code and adding "tcdl" as a valid namespace prefix of the CP we were loading (with a namespace of "http://www.tridion.com/ContentDelivery/5.3", but that doesn't really matter, you can use anything).

Why does it not fail on the other environment is beyond me.


I would suggest using beyond compare or a similar tool to compare you configuration files for each enviornment.

Thinking back to our upgrade and remembering runing into the same issue for a 5.3 to 2009 upgrade I have two specfic things for you to check on in cd_deployer_conf.xml:

  1. In the <TCDLEngine> section of the file make sure you have the following:

            <Property Name="tcdl.dotnet.style" Value="controls"/>
  2. Under the <Processor Action="Deploy"> section of the file make sure you have the following value configured for the PageDeploy module:

    <Module Type="PageDeploy" Class="com.tridion.deployer.modules.PageDeploy">
        <!-- The transformer enables the TCDL Engine -->
        <Transformer Class="com.tridion.deployer.TCDLTransformer"/>

I think the later is the default but the first item I remember having to add manually. There is a section of the SDL Tridion 2011 Upgrade Manual that covers this.

  • these both sections already there in cd_deployer.
    – Raj Kumar
    May 9, 2013 at 14:36
  • I figured it was somewhat of a longshot as those are changes to the deployer config, not the publisher but I just do not remember us making any code side adjustments to resolve this issue. I would still suggest comparing all the configuration files with beyond compare to make sure the non-environment specific sections are the same between environments. May 9, 2013 at 15:28

I got the solution, under my publication target I need to set the "Target Language" to none. after setting it started working perfectly, i checked with Owner of that environment, he mistakenly set the language to something, which caused this issue.


I would suggest following:

  1. Make cleanup flag to false in the deployer config and take the Deployer Package from the environment where it is working and from the environment where it is not working
  2. Also, take whole Content Delivery folder from both the environment
  3. For each of them, use the tool like Beyond Compare, and compare them

Since you are saying that it is working in Template Builder, the most probable is that the issue is at the content delivery side or may be the transport package being distributed is different.

Also check, if it is working in the template builder when you open the template from the same publication from where you are publishing it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.