Channel Manager Troubleshooting - BloomReach Experience - Open Source CMS

This article covers a Hippo CMS version 10. There's an updated version available that covers our most recent release.

10-10-2017

Channel Manager Troubleshooting

Contents

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

Common Problems

Template Composer says "Unable to change to composermode. Please check if the site is online."

  1. Check whether the site works by accessing it directly.

  2. Check whether the hst:cmslocation is configured correctly. Something like:

    + hst:hst
        + hst:hosts
            + dev-env
                - hst:cmslocation = http://localhost:8080/cms

    and:

    + hst:hst
        + hst:hosts
            + acct-env
                - hst:cmslocation = http://www.acct.example.com/cms 
  3. If the channel manager works locally, but not on the server, check if you see a 404 message in Firebug in the channel manager, for example the following gives a 404:
    http://cms.example.org/site/_rp/cafebabe-cafe-babe-cafe-babecafebabe./keepalive/?FORCE_CLIENT_HOST=true&_dc=1374269666016
    Then most likely you missed Apache config as shown below under Preview of channels in the CMS and in a separate window does not work behind Apache web server.
  4. Not possible anymore in version 10.2.3 and newer: If get a  500 Internal Server Error on the URL that looks something like 
    Request URL:https://cms.example.org/site/_rp/cafebabe-cafe-babe-cafe-babecafebabe./composermode/www.exampe.org/?FORCE_CLIENT_HOST=true&cred=H8xCpG1xP4sA35enzhic0QY-JHu7TZQjm0x4aTxiHl_RqjG7mxfrHIHA8DoALdw7e-yDqCztqwdEoZQUYAjTlwiLeaHj8eii9ch2v8_sVlJxgMQpZf_zCci5uYYDTNyO-MCB8KBqzwv3fwM19-hx43J1z4RMc19nPWwuOHWIDgvtnIeSsvgMU8GZ672NqJmRnGGXHepya389Jn1ZUO2s434mu1QvcorpAq75z-yi4JLBRoZhU4t8O0utRiE05qBu9KMEXRHGBR2YdQK_H49uv-3dfkd7XUFykaf-3y3qwapXvUWPaID8rljizf3QpAspKwFqaLei5kd2-qwFej8zWACDy03tgU_Z5OJcDuPs6rWbm2sAKp9oUJ6-xt9L1mBM66GtY-bsCPvyb24AgKvqJVPYwqGIBMxS4hh1dpFQa1Y=Request Method:GET Status Code:500 Internal Server Error
    then, try closing your browser completely and restart a new one (or test with an incognito window). Most likely you have a session cookie for the site preview that resolves to a different cluster node than the cms session cookie.

  5. Not possible anymore in version 10.2.3 and newer: Check the site logs for the error message:
    SignatureException while decrypting credentials : {the reason}
    First try closing and restarting your browser. This may be the same problem as (4). If this does not help see (6).

  6. Not possible anymore in version 10.2.3 and newer:If this problem occurs only on localhost and you get the following error:
    SignatureException while decrypting credentials : java.security.SignatureException: Provided key does not match encrypted key
    and the following error in the Javascript console:
    The SSO handshake with '/site/_rp/cafebabe-cafe-babe-cafe-babecafebabe./keepalive/?FORCE_CLIENT_HOST=true' failed. The channel manager cannot be used.
    then possibly your site is set up to use SSL and is using secure session cookies but your local Cargo runtime environment is using insecure connections. Configure Cargo for SSL/TLS.

  7. Not possible anymore in version 10.2.3 and newer: If this problem happens on localhost as well as possibly on deployed environments and on the logs you get the following error:
    "SignatureException while decrypting credentials : java.security.SignatureException: Provided key does not match encrypted key"
    and in the browser you get a redirect loop (you can see this in network traffic in the browser), then you possibly have set the session cookie path for the /site application to '/'. You should not do this. If you have someting like
    <Context sessionCookiePath="/"  crossContext="true"> in your site webapp context.xml, the channel manager won't function properly: The site webapp must store its session cookie below /site. You need to remove the sessionCookiePath attribute : by default then the container will store sessions below the webapp cookie path.

If the "invalid session cookie" issue described in (4) and (5) above occurs frequently you may consider specifying a secret key to enable SSO between the CMS and Site applications.

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

This can happen since version 10.2.3 and newer: in a clustered environment when you did not set up the loadbalancer correctly. See Hippo CMS Loadbalancing Requirements how to set up the loadbalancer correctly.

'Add new page' Button is not visible in Pages overview

If in Page Management you have the dialog 'Pages' open but you do not see the 'Add new page' as show in the image below, then your project configuration does not have any prototype pages defined. The button will only be visible for configurations that have prototype pages. If you add prototypes, the button will appear. 

Channel cannot be previewed in a new window

When the 'Preview' link behind the channel name in the channel overview does not work:

  1. If you are accessing the site without portnumber, make sure that from your /hst:hst/hst:hosts/_your_hostgroup_ you remove the property hst:defaultport

  2. On /hst:hst/hst:hosts you are missing the property hst:defaultcontextpath. This property must be present and have the value of the contextpath (in case the site is deployed as ROOT.war the value must be empty string), including the starting /. The default value is /site:

    + hst:hst
        + hst:hosts
            - hst:defaultcontextpath = /site

"This perspective could not be loaded. This is caused by the CMS not being able to connect to the site, either because the site is down or due to a misconfiguration. Please contact your system administrator."

If you see the above message, you should test whether the server side rest calls over 127.0.0.1 are requested and return within 1 second. You can check this by adding hst:diagnosticsenabled and hst:diagnosticsforips to hst:hosts as follows:

+ hst:hst
  + hst:hosts
    - hst:diagnosticsenabled = true
    - hst:diagnosticsforips = 127.0.0.1

Now, when opening the channels perspective in the CMS, you should see logging something like:

INFO  [org.hippoecm.hst.core.container.DiagnosticReportingValve.logDiagnosticSummary():47] Diagnostic Summary:
   HstDelegateeFilterBean (11ms): {request=Request{ method='GET', scheme='http', host='127.0.0.1:8080', requestURI='/site/_cmsrest/channels/', queryString='null'}} 

If you do not see the above request, there must be some configuration problem.

Most likely the hstRestProxyService (at /hippo:configuration/hippo:frontend/cms/cms-services/hstRestProxyService) has an incorrect URI configured.

Note that you cannot refer to localhost in the rest.uri property. Use 127.0.0.1 instead.

The following is no longer needed since release 3.2.3, unless a port is explicitly specified for the rest.uri:
if you are running the application on a different port than the default 8080, change the port number in the rest.uri property accordingly (e.g. to 9080):

+ hippo:configuration
  + hippo:frontend
    + cms
      + cms-services
        + hstRestProxyService
          - rest.uri = http://127.0.0.1:9080/site/_cmsrest

(If you want to use IPv6 use http://[::1]:9080/site/_cmsrest instead)

'View document in channel' menu does not work

You cannot view a document in a channel, and whenever you edit a document an error similar to the following is logged:

Caused by: java.net.ConnectException: ConnectException invoking http://127.0.0.1:8080
     /site/_cmsrest/documents/c23ac389-ceda-4117-be37-e063c2f9e405/channels/:
     Connection refused

Most likely you are running the application on a different port than the default 8080. See "This perspective could not be loaded [...]" above.

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. Hippo CMS 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.

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

Warnings/errors from RestProxyServicesManager

In the logs you might see something like:

11.12.2013 12:20:11 WARN  [org.onehippo.cms7.channelmanager.restproxy.RestProxyServicesManager.getLiveRestProxyServices:136]
Site for contextPath {} is not live. Re-checking in {} milliseconds.

Note that even on the server the application is running testing the URL http://127.0.0.1:8080/site/_cmsrest/sites/_isAlive via curl or wget does not work because encoded header credentials are required. The request can only be done by the application itself.

If you see the error above, then there can be two different problems:

Possible problem 1

In site/src/main/resources/META-INF/hst-assembly/overrides you do not have the spring configuration required for the channel manager. You need there xml files, typically named hst-cms-rest.xml containing:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
  <import resource="classpath:/org/hippoecm/hst/site/optional/jaxrs/SpringComponentManager-rest-jackson.xml" />
  <import resource="classpath:/org/hippoecm/hst/cmsrest/SpringComponentManager-cmsrest.xml" />
</beans>

and template-composer-rest.xml containing:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
  <import resource="classpath:/org/hippoecm/hst/site/optional/jaxrs/SpringComponentManager-rest-jackson.xml" />
  <import resource="classpath:/org/hippoecm/hst/pagecomposer/SpringComponentManager-pagecomposer.xml" />
</beans>

Possible problem 2

You have configuration errors for the rest proxy service. The default single site.war webapp rest proxy configuration is located at:

http://localhost:8080/cms/console/?1&path=/hippo:configuration/hippo:frontend/cms/cms-services/hstRestProxyService

Make sure the context.path and request.uri are configured correctly. Note that after changing a rest proxy service configuration, you have to logout and then login again into the cms to see the changes

After changing rest proxy configuration below cms-services, you have to logout and login again in the cms to see the changes

No channels showing up in the channel manager list

This troubleshooting item only applies if you have deployed your site as ROOT.war. In case the site works correctly, but without any warnings/errors being logged the channel manager does not show any channels, make sure that the property hst:defaultcontextpath is present and has empty value like below

+ hst:hst
   + hst:hosts
     - hst:defaultcontextpath = (empty string)

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/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.

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?