Show Menu

Pipeline troubleshooting

Pipelined fails with error "No task corresponds to the mask pipelined@"
Your version of Adobe Campaign Classic does not support the pipeline.
  1. Check if the pipelined element is present in the config file. If not, it means it's not supported.
  2. Upgrade to version 6.11 build 8705 or later.
Pipelined fails with '' aurait dû commencer par [ ou { (iRc=16384)"
The NmsPipeline_Config option is not set. It's actually a JSON parsing error. Set the JSON config in the option NmsPipeline_Config . See "routing option" in this page.
Pipelined fails with "the subject must be a valid organization or client"
The IMSOrgid configuration is not valid.
  1. Check that the IMSOrgId is set in the serverConf.xml.
  2. Look for an empty IMSOrgId in the instance config file that can override the default. If so, remove it.
  3. Check that the IMSOrgId matches that of the customer in the Experience Cloud.
Pipelined fails with "invalid key"
The @authPrivateKey parameter of the instance config file is incorrect.
  1. Check that the authPrivateKey is set.
  2. Check that the authPrivateKey: starts with @, ends with =, and is about 4000 characters long.
  3. Look for the original key and check that it is: in RSA format, 4096 bits long, and starts with -----BEGIN RSA PRIVATE KEY-----.
    If necessary, re-create the key and register it on Adobe Analytics. Refer to this section .
  4. Check that the key was encoded within the same instance as pipelined.
    If necessary, redo the encoding using the sample JavaScript or workflow.
Pipelined fails with "unable to read the token during authentication"
The private key has an invalid format.
  1. Run the steps for key encryption on this page.
  2. Check that the key is encrypted on the same instance.
  3. Check that the authPrivateKey in the config file matches the generated key.
    Make sure to use OpenSSL to generate the key pair. PuttyGen for example, does not generate the proper format.
No triggers are retrieved
When the pipelined process is running and no triggers are retrieved:
  1. Make sure that the trigger is active in Analytics and is generating events.
  2. Make sure that the pipelined process is running.
  3. Look for errors in the pipelined log.
  4. Look for errors in the pipelined status page. trigger-discarted, trigger-failures should be zero.
  5. Check that the trigger name is configured in the NmsPipeline_Config option. If there is a doubt, use the wildcard option.
  6. Check that Analytics has an active trigger and is generating events. There could be a delay of a few hours after the configuration is made in Analytics before it's active.
Events are not linked to a customer
When some events are not linked to a customer:
  1. Check that the reconciliation workflow is running, if applicable.
  2. Check that the event contains a customer ID.
  3. Make a query on the customer table using the customer ID.
  4. Check the frequency of the customer import. New customers are imported into Adobe Campaign with a workflow.
Latency in events processing
When the Analytics timestamp is much older than the creation date of the event in Campaign.
Generally, a trigger can take 15-90 minutes to launch a marketing campaign. This varies depending on the implementation of data collection, load on the pipeline, custom configuration of the defined trigger, and the workflow in Adobe Campaign.
  1. Check if the pipelined process has been running.
  2. Look for errors in pipelined.log that can cause retries. Fix the errors, if applicable.
  3. Check the pipelined status page for the queue size. If the queue size is large, improve the performance of the JS.
  4. Since a delay seems to increase with volume, configure the triggers on Analytics using fewer messages. Annexes
How to use the Key encryption JavaScript
Run a JavaScript to encrypt the private key. It is required for the pipeline configuration.
Here is a code sample that you can use to run the cryptString function:
  nlserver javascript -instance:<instancename> -file -arg:"<private_key.pem file>" -file encryptKey.js
function usage()
  return "USAGE:\n" +
    '  nlserver javascript -instance:<instancename> -file -arg:"<private_key.pem file>" -file encryptKey.js\n'
var fn = application.arg;
if( fn == "" )
  logError("Missing key file file\n" + usage());
//open the pem file
plaintext = loadFile(fn)
if( !plaintext.match(/^-----BEGIN RSA PRIVATE KEY-----/) )
  logError("File should be an rsa private key")
logInfo("Encrypted key:\n" + cryptString(plaintext, <xtkSecretKey>))

On the server, execute the Javascript:
nlserver javascript -instance:<instancename> -file -arg:"<private_key.pem file>" -file encryptKey.js

Copy and paste the encoded key from the output to the console.