I have been getting an infamous - "array can not be null" error when try to do following in an SDL Tridion 2013 SP1 HR1:

  • Open the "History" of any component
  • Select any two versions and do compare
  • OR alternatively, right click on the component and choose "Compare" to compare current and previous version

Below screenshot shows this error: enter image description here

The browser console shows below:

enter image description here

enter image description here

MORE INFORMATION This is the scenario happening in the PROD CMS environment, however, the corresponding QA environment - where the same component (by virtue of DB store from PROD to QA) is tried to compare version, works perfectly fine

Also, can't find anything else in Windows logs.

Any help is greatly appreciated.


  • This is happening with each and every component regardless of schema and with every version with in the component
  • This is only happening with components whereas Pages, Templates etc. can be compare without error

3 Answers 3


I've faced similar error and in my case the component template was not updated in the environment while the schema was updated using content porting. So, however strange it may appear, I realized there is connection between template and rendering historical details of the component

  • Thanks dear - but it is happening for every component regardless of schema. Pages are good for compare, and only component based on any schema are giving error. Also, the same DB has been restored on QA and there is working fine Mar 3, 2017 at 13:00
  • Try reindexing the DB. Some store procedures might need recompile. Also, restore worked, points to the same Mar 3, 2017 at 13:18
  • The re-indexing is happening as per the DB maintenance plan (scheduled for daily) Mar 3, 2017 at 15:27

Finally got a resolution for this: The Default Component Template in use was a VBScript [Legacy] template. On QA, this is working fine as the SDL Tridion 2013 was installed with Legacy Option. However, on Prod, the CM was not installed with legacy option, but the DBs seems to be restored from QA (where legacy option was true) - so this even make the VBScript [Legacy] templates to open in CME (Just my understanding/assumptions) but neither they are visible in Template Builder, nor they get executed successfully wile trying to render.

Moral: Don't always believe that VBScript [Legacy] templates are available and so the legacy pack should have been installed - better to check whether legacy pack is installed or not as under: just go to: Control Panel -> SDL Tridion -> Right Click -> Choose Change -> Select Advanced View - You will see what all is installed (checked Options) and what all is not installed (Unchecked Options)


The error you are seeing, seems to be coming from default component template.

Based on my understanding: Component template and page template are used for rendering the result of the comparison. Default component template and page template are set at publication level.

To validate this understanding, in one of the publication change the default component template and perform the comparison of similar component.

I had faced similar problem in two different scenarios:

  1. Got resolved by changing the default component template.
  2. Got resolved by providing permission to the default templates.
  • 1
    Thanks Hiren, valuable suggestion; I am still trying to figure out why it would be like this where it is giving error on one environment but not on the other one where this DB has been restored Mar 6, 2017 at 13:13
  • 1
    Since you have given the hint to reach me the final resolution, I will award the bounty to you :) Mar 6, 2017 at 17:21
  • Good to know that my suggestion helped you in figuring out the issue.
    – Hiren Kaku
    Mar 6, 2017 at 17:47

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.