Known issues in Content Delivery

The following list describes issues that are known to exist in Content Delivery.

State Store storage configuration does not allow you to configure a ServiceName property for Oracle

Unlike standard storage configuration in the Storage Layer configuration file, cd_storage_conf.xml, State Store storage configuration in the Content Deployer configuration file, deployer-conf.xml, only allows you to configure connecting with SID. It does not enable you to set a ServiceName property.

(Session-enabled) Content Service does not work properly with the Context Engine Cartridge or Context Expression Extension Cartridge unless OAuth is enabled

If the Ambient Data Framework Cartridges for the Context Engine Cartridge (called cwd_engine cartridge_conf.xml) or for the Context Expression Cartridge (cx_ambient_cartridge.xml) are configured in the Content Service or in the Session-enabled Content Service, and that service is not secured with OAuth, the service does not work properly. To work around this issue, enable OAuth on your (Session-enabled) Content Service.

Cannot use --all switch with quickinstall.sh express installation script
The Unix version of the express installation script does not accept the --all switch. There are two ways to work around this problem:
  • Run the express installation script, specifying each service to install individually.
  • Do not run the express installation script, but follow the traditional installation instructions.
Content Service throws null pointer exception in response to a query with a non-existent URL

When using the dynamic metadata API to get back Page metadata for a URL that does not exist, the Content Service throws a null pointer exception, rather than a friendly and informative error message.

.NET method Uri.EscapeDataString(urlString) has changed behavior
Version 4.0 or older of the Microsoft .NET Framework is not supported. This may have an effect on how your URLs are parsed if they contain brackets:
  • In .NET 4.0 and older, characters that are reserved in RFC 2396 are escaped. RFC 2396 allows brackets.
  • In .NET 4.5 and newer, characters that are restricted in RFC 3986 are escaped. RFC 3986 restricts brackets.

This change is related to the enabling of IRIs (Internationalized Resource Identifiers). For more information, refer to this page on the MSDN Web site: https://msdn.microsoft.com/en-us/library/system.uri%28v=vs.110%29.aspx

To quickly see the difference in behavior, run the following code, targeting first .NET 4.0 and then .NET 4.5.2:
string url= @"http://some.url/page (bracketed).html";
Console.WriteLine(url);
Console.WriteLine(Uri.EscapeDataString(url));
The complete list of characters that are restricted (that is, that will be encoded) as per RFC 3986 are:
: / ? # [ ] @ ! $ & ' ( ) * + , ; =
Publish transactions fail in a high-volume publishing scenario

If you are executing a high-volume publish, you might find that some publish actions fail. If this happens, you have several options.

On the one hand, you can set up your Content Deployer as a separate endpoint and worker, and set up multiple Content Deployer workers so that you can handle high-volume publishing.

On the other hand, if you want to limit yourself to a single Content Deployer worker, contact SDL Customer Support to obtain the latest hotfixes for SDL Web 8.5, and go through the Troubleshooting section to learn how to fine-tune your Publisher and Content Deployer.

Staged upgrades do not support OAuth in Web sites for which Preview is enabled

The Preview Service does not work with an Experience Manager fast track publishing service if OAuth is enabled. To work around this problem, disable OAuth on the servers until they can complete the upgrade by upgrading Content Manager as well.

-auto-register switch does not automatically register the Web Capability

If you start the Discovery Service using the -auto-register switch, the Web Capability (used for mapping Publications to Web applications) is not registered automatically. To work around this problem, use the Discovery Service registration tool to register this Capability by hand.

The Content Interaction Library cannot be used to render JSP or ASCX fragments

It is not possible to render dynamic component presentations based upon ASCX Web Controls or JSP Script fragments through the client-side Content Interaction Library. Instead customers should publish their content using the Render Engine Language (REL).

No Context Engine Server Controls in the Content Interaction Library

We do not provide Context Engine Server Controls that will run using the Content Interaction Library. To use expression evaluation, use REL tags instead.

Personalization and Profiling API not available in Content Interaction Library

The API is not available.

UGC .NET Web site extension required forwarding of Claims to be configured in an inconsistent location

The Java/JSP version of the UGC Web site extension expects its configuration of the forwarding of Claims to be in cd_ugc_conf.xml. But the .NET version of the same software component expects it in cd_ambient_conf.xml. This is inconsistent.

PageContentAssembler limitation

When you use this class, the file system page name must match the Page name in Content Manager. If not, Experience Manager cannot render correctly using the Context Interaction Database.

A Taxonomy Keyword with multiple parents can no longer retrieve its multiple parents

In the event that a Keyword in your Taxonomy has multiple parents, a call to primaryKeyword.getParentKeywords() used to be able to retrieve said parents. But this API call no longer works properly.

High-volume publishing may result in failed Publish Transactions

Under certain conditions, high-volume publishing may result in some failed Publish Transactions. This is due to incidental conflicts that occur when the Content Data Store database is updated. Content Delivery has a fallback mechanism to deal with this problem: it retries the deployment of the content for up to 10 times. But if the number of conflicts is too high, this may not be enough.

To work around this problem, do one of the following:

  • Decrease the number of Workers in your Content Deployer configuration
  • Republish the content that failed
Context Engine Cartridge: Expression cannot refer to property defined by another expression

If you define a property in your custom vocabulary (which means the property is defined by an expression), then you cannot refer to this property from another expression that defines another property in your custom vocabulary.

Aspect properties in Context Engine Cartridge Claims are of a different type than before
The following incorrect type changes for aspect properties have been detected:
PropertyOld typeNew type
taf:claim:context:browser:cssVersioncom.sdl.context.api.types.GenericVersioncom.google.gson.internal.LinkedTreeMap
taf:claim:context:browser:displayColorDepthjava.lang.Integerjava.lang.Double
taf:request:cookiesjava.util.collections$UnmodifiableMapcom.google.gson.internal.LinkedTreeMap
Context Engine Cartridge does not work in combination with Footprint functionality in Experience Manager

Because the Footprint functionality overrides an Ambient Data Framework Claim indicating browser model, but not the user agent Claim, unexpected behavior occurs. This is because the Context Engine Cartridge determines the value of its browser.model property on the user agent.

Names of Context Engine Cartridge aspects and aspect properties cannot be equal to CEL reserved words
The name of an aspect or aspect property cannot be equal to a reserved word in CEL. To work around this problem, give your aspect or aspect property a different name. Specifically, your aspect or aspect property cannot be one of the following:
  • or
  • and
  • eq
  • ne
  • lt
  • gt
  • le
  • ge
  • div
  • mod
  • not
  • null
  • true
  • false
  • new
  • var
  • return