Recently we received an email from an avid reader of Core Content Only, Brian. He was inquiring about an error message he received while attempting to develop a service within WebCenter Content 11g and how to go about fixing it. The error message giving him trouble was “Content Server Request Failed” and will appear as such.
Typically this error message is thrown during the integration of a custom component developed for an older version of Content Server onto 11g. In this scenario the authorization token (“idcToken”) is not being passed from the component to a subsequent service request resulting in the error message being thrown.
We've encountered this error in the past and we were able to uncover a few solutions. To help other developers encountering the issue save time and correct the issue, we have provided our solutions below. Before we are able to correct the error, first we must understand the error.
What is this authorization token, and why do we need it?
The authorization token is a security feature with in WebCenter. The authorization token is automatically generated and assigned to the user during each session. The token’s purpose is to maintain the ‘State’ of the user in the new state-full architecture of WebCenter Content 11g when passed along.
Service parameters allow users access to content based upon authorization levels identified by the token. The authorization token communicates the level of access based on context and user information to WebCenter.
What does it mean when the Content Server Request Fails?
The Content Server Request Failed error message happens when the authorization token is not passed along. The Authorization Token may not be passed along because it is either missing or expired.
When working through a solution it is important to note that the actual error being encountered is !csInvalidAuthorizationToken
The solutions to the missing Authorization Token are covered below.
Solutions for the Content Server Request Failed Error
The Content Server Request Failed error message offers little information on how to solve the issue. The only solution suggested by the default error message is to “Try reloading the page”.
Rarely will reloading the page solve the issue and the same error message will be thrown. Reloading the page will only solve the issue of the issue was with the page load. A missing authorization token cannot be fixed by reloading the page.
There is no need to panic if this is the case; there are other solutions that we will walk you through. Below are three alternate solutions not mentioned by the default error message that will correct the issue with the missing token.
The solutions below will show a small component using 2 services (MyCustomService and MyTokenService) and 1 template to help visualize the concepts.
Solution 1 - Setting the service to scriptable
This can be carried out during the addition of a new service or editing of an old service.
In Content Server services are added and edited using the component wizard. This is where we must set the service to scriptable.
Although this solution is effective it may not always be the best route. When the service is set to scriptable Content Server will recognize any user accessing the service as an administrator, thus creating a security risk.
Click to enlarge solution images for better viewing.
Setting the service to scriptable (access code of 32 or higher) will resolve this issue, but this might not always be the best route.
Solution 2 - Include Token in Service Calls
First place the idcToken into the parameter list of the service. This is done by editing the HTML page being rendered on the page, like so.
(MyCustomService) with the current idcToken.
This will place a button or link to the service in question, MyCustomService, with the current idcToken. The end result will be displayed as such.
Solution 3 - The Authorization Token can be disabled
The authorization token is a security feature and disabling it is not a recommended option, but if you are on a development instance it might be useful.
This can be done by adding the variable DisableAuthorizationTokenCheck=true into the \ucm\cs\config \config.cfg file. By default the option is set to false.
Services calls are not the only instance where this error can occur. This error may happen to the hypertext content server forms (HCSF). Although HCSFs differ from services the error can be resolved using solution two from above.
The only difference from solution two is the syntax of the template. In an HCSF an IdocScript snippet must open with <!--$ and close with --> so the entire snippet of code will look like <input name="idcToken" value="<!--$idcToken-->">
Add: <input name="idcToken" value="<!--$idcToken-->"/>.
We hope you have found our solutions to the Content Server has Failed error message useful and time saving. If you have any feedback, comments or concerns please let us know, and comment below.
If you are having other issues, please identify them in the comments below or through our contact form and we will make sure to address them in an upcoming blog posts.