Channel Manager Troubleshooting - BloomReach Experience - Open Source CMS
15-04-2019

Channel Manager Troubleshooting

Contents

This page describes common problems with the Channel Manager and Channel Editor and how to solve them:

Common Problems

Channel Overview does not show any channels

In case the Channel Overview is empty while you do have actual channels, then most likely you have one (or more) of the following problems:

  1. The CMS host over which you access the CMS is not configured below /hst:platform.
  2. The CMS host is configured below /hst:platform, but the hostGroup it is configured in does not match the hostGroup of the HST webapp hst configuration(s).
  3. You have accessed the CMS with queryString ?HstMode=false.
  4. The HST site webapp(s) does not have the property hst.configuration.rootPath in hst-config.properties pointing to the HST root node for that webapp.
  5. The hst-api.jar is in the CMS webapp as explicit jar. Make sure it gets removed since it should be part of the shared lib.
  6. CMS webapp web.xml does not contain the mandatory HST context params and filter.

To fix 1, 2 and 3, take a look at Hosts Configuration. For 4, take a look at HST Configuration Model Introduction. Fixing 5 is a matter of removing the hst-api.jar from the CMS dependencies. To fix 6, it is best to compare your CMS web.xml with the web.xml as created by an archetype project.

Wrong channels are shown in Channel Overview

In case the wrong channels are shown (or the wrong URLs for the live channels), then the matching CMS host most likely has a wrong hostGroup. For example, the matching CMS host is below the hostGroup 'acct-ent' while it should for example have been the 'prod-env' since production URLs should be displayed. Follow the documentation in Hosts Configuration.

Not all channels are listed in Channel Overview

In case you have multiple HST site webapps and you are missing the channels from a particular HST site webapp, then most likely:

  1. one of the HST site webapps has its channels below a different hostGroup then the hostGroup of the matched CMS host (below /hst:platform) or
  2. one of the HST site webapps does not have the correct HST rootPath configured in its hst-config.properties.

See  Hosts Configuration or HST Configuration Model Introduction to fix 1 and/or 2.

Channel does not load and network shows a 409 (conflict)

This can happen in a clustered environment when you did not set up the loadbalancer correctly. See Bloomreach Experience Manager Loadbalancing Requirements how to set up the loadbalancer correctly.

'New' option is not available in Page menu

If in the Channel Manager you have the menu 'Page' open but you do not see the 'New' option as shown in the image below, then your project configuration does not have any prototype pages defined. The option will only be available for configurations that have prototype pages. If you add prototypes, the button will appear.

 

Preview of channels in the CMS and in a separate window does not work behind Apache Web Server

Make sure that VirtualHost configuration for the cms also contains a extra PROXYPASS for /site/

<VirtualHost *:80>
  ServerName cms.example.com

  ProxyPreserveHost Off

  #INCLUDE THE EXTRA PROXYPASS RULE FOR /site HERE
  ProxyPass /site/ http://127.0.0.1:8080/site/
  ProxyPass / http://127.0.0.1:8080/cms/
  ProxyPassReverse / http://127.0.0.1:8080/cms/
  ProxyPassReverseCookiePath /cms /
</VirtualHost>

Opening a channel shows a blank page

This can happen if your network infrastructure have disabled http HEAD requests, for example in a Citrix virtualization environment. In this case, you have to contact your system administrators in order to verify HEAD request type is not blocked.

This can also happen if you integrated the CMS authoring application with a web application security framework (such as Spring Security) which sets the response header X-Frame-Options to DENY. Bloomreach Experience Manager requires an X-Frame-Options response header value SAMEORIGINSpring Security Framework sets it to DENY by default since version 4.0. If you integrated with Spring Security Framework version 4.0 or later, change the response header value to SAMEORIGIN.

Wrong or empty channel opens in Channel Manager

This can only happen in CMS 12.0.0 or higher and the solution is also only valid for version 12.0.0 or higher

In the logs you can find messages back something like

WARN  http-nio-8080-exec-3 [VirtualHostsService.warnDuplicateChannel:450] Skip channel with id '${project-channel}' because already present for host group '${project-specific-hostgroup}'. Most likely there is a parent channel that already is a channel mngr channel. Set 'hst:nochannelinfo = true' on mount 'MountService [jcrPath=${project-specific-path}, hostName=${project-specific-host}]' to avoid this problem.

This can be a result of a very specific setup that used to work a tiny bit different in older versions, but works a tiny bit different in versions since CMS 12.0.0. The cause and fix and described at Explicitly hide a Mount in the Channel Manager.

Unable to find package resource nl.png

If you get a warning like this in the log files:

WARN [org.apache.wicket.markup.html.PackageResource.getResourceStream():594]
 Unable to find package resource [path = org/onehippo/cms7/channelmanager/channels/nl.png, style = null, locale = null]  

make sure the hst:locale in the accessed mount is a proper Java locale like nl_NL

Channels are showing a blank page with message to reload page

  • Try reloading CMS interface after removing browser cache data
  • Check if response header contains header with name X-Frame-Options and value "DENY".

Stacktraces MissingResourceException when clicking 'Channel Settings' in channel manager

When you see stacktraces when clicking 'Channel Settings' like below:

17.12.2013 15:05:55 ERROR [org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage():116] Error occurred during error handling, give up!
 org.apache.cxf.interceptor.Fault: Can't find bundle for base name org.onehippo.forge.channels.WebsiteInfo, locale en
 at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162)
 at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128)
 at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167)
...
...
...
Caused by: java.util.MissingResourceException: Can't find bundle for base name org.example.channels.WebsiteInfo, locale en
 at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499)
 at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322)
 at java.util.ResourceBundle.getBundle(ResourceBundle.java:795)
...
... 

Then you either do not have added i18n resource bundles (in this case WebsiteInfo.properties, WebsiteInfo_de.properties, etc) next to the WebsiteInfo class, or, in case you have, you do not have added to the site/components/pom.xml <build> section the following part:

<build>
    ...
    ...
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <filtering>false</filtering>
        <includes>
          <include>**/*.properties</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
</build>

Changes in Blueprints through the Console are not visible in the Channel Manager at 'Add Channel'

This is due to caching of blueprints. To be able to see the changes, made to blueprints in the /console, in the Channel Manager, you need to logout from the CMS and login again.

Blueprint 'reusing existing content' does not work

Even though you have added a hst:site node with hst:content property to the blueprint, still you do not get to see a picker to select the existing content to use for a new channel. When this is the case, it might be that for your blueprint, you still have a bootstrap content node (same name as blueprint node) configured below /hippo:configuration/hippo:queries/hippo:templates/new-subsite/hippostd:templates. That one takes precedence over the hst:site/hst:content property.

No borders visible for containers and components

The Channel Manager relies on HTML comments in the markup to be able to render containers and components. For instance, taken from our demo environment, the HST inserts comments like this in the page:

<!-- { "HST-Label":"bannercarousel", "HST-LastModified":"1490608164816", "HST-XType":"HST.Item", "uuid":"8d3699eb-fb88-41c9-8d10-590c2b7f9335", "HST-Type":"CONTAINER_ITEM_COMPONENT", "refNS":"r33_r1_r1_r1", "url":"/site/_cmsinternal/uk?_hn:type=component-rendering&_hn:ref=r33_r1_r1_r1"} -->

with a matching end comment:

<!-- { "uuid":"8d3699eb-fb88-41c9-8d10-590c2b7f9335", "HST-End":"true"} -->

If (blue) borders are not showing for containers and components in the Channel Manager, this can be caused by an optimization in your webapp container or web server. For instance, in Tomcat there could be a filter installed that strips out HTML comments. Web servers like Apache httpd or Nginx also have optimization capabilities. 

To resolve this, configure your set-up to not strip HTML comments during CMS requests.

Channel settings not editable

There can be multiple reasons why channel settings are not editable (read-only). It can be that the channel settings have been modified by someone else but not yet published. In this case, the settings are locked. It can also be that the entire hst:configuration node has hst:locked = true, resulting in that everything is locked. Another possibility is that the hst:channel node is located directly below the hst:configuration node and not below the hst:workspace. So if for example your channel is myproject, and the channel node location is

/hst:hst:
  /hst:configurations:
    /myproject:
      /hst:channel:
        /hst:channelinfo:

then the channel settings in the Channel Manager will be read-only. To make the channel settings editable, move the node below hst:workspace

/hst:hst:
  /hst:configurations:
    /myproject:
      /hst:workspace:
        /hst:channel:
          /hst:channelinfo:

Last reason why the channel settings can be read-only is the hst:channel node is not configured below the hst:configuration for the channel you are looking at, but that it comes from an inherited channel. In that case, the channel settings are read-only as well.

Projects feature does not work

The fix described here only applies to Bloomreach Experience Manager 13.0 and 13.1. As of version 13.2, the hst:defaulthostname property cannot cause this problem any more.

If the Projects feature malfunctions (on other hosts that localhost typically), it might be that the property hst:defaulthostname is configured on a hst:hosts node. When present, the property hst:defaulthostname must be removed.

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?