Take the 2-minute tour ×
Tridion Stack Exchange is a question and answer site for Tridion developers and administrators. It's 100% free, no registration required.

I'm having trouble deploying content via Tridion to SmartTarget.

I can see that my deployer is dropping xml files into the incoming folder:


But i'm seeing in my logs that the kettle job can't run to process and index the files:

2014-07-21 20:19:15,387 ERROR DeployPipelineExecutor - Unable to start processing deployment package with transactionId: tcm:0-145653-66560 com.tridion.deployer.ProcessingException: Phase: Deployment Processing Phase failed. Unable to start kettle job in Fredhopper. Please check configuration and Fredhopper Installation at com.tridion.deployer.phases.DeployPipelineExecutor.runMainExecutePhase(DeployPipelineExecutor.java:209) [cd_deployer.jar:na] at com.tridion.deployer.phases.DeployPipelineExecutor.doExecute(DeployPipelineExecutor.java:100) [cd_deployer.jar:na] at com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:64) [cd_deployer.jar:na] at com.tridion.deployer.TransactionManager.handleDeployPackage(TransactionManager.java:82) [cd_deployer.jar:na] at com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java:180) [cd_deployer.jar:na] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.7.0_60] at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.7.0_60] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_60] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_60] at java.lang.Thread.run(Unknown Source) [na:1.7.0_60]

This is an 'on premise' installation and my smarttarget_conf.xml contains the reference to STJob.kjb but I don't see this file within my deployer application.

Should this file exist within my deployer? (i used the installer to upgrade my deployer) or is there another fix for this?

Thanks in advance :)

share|improve this question
This is for SmartTarget 2014 I assume. –  Jan H Jul 22 '14 at 6:34

4 Answers 4

up vote 8 down vote accepted

I've resolved the issue.

I had installed FAS version (107777), I should have been using

Version is not used for 'on-premise' installations.

Thanks Peter Kjaer @ SDL for sitting with me to resolve this :)

share|improve this answer
No problem, John. Sorry for the trouble! We've now put an extra note in the installation docs which will hopefully prompt people to double-check the version they are installing. Hopefully the latest version will soon be supported on-premise too. –  Peter Kjaer Aug 1 '14 at 14:26

In the Fredhopper extensions folder do you not see the STJob.kjb file?

If you do then you should copy this into to \data\instances\etl

You then need to load the metadata xml as described in the documentation [login required]

Confirmed offline: smarttarget_conf.xml file contained the correct and this represented a webservice endpoint

share|improve this answer
hey mark, i've done that, and this does process the xml files, but this isn't kick started by my deployment, how do i ensure this is automated each time? –  johnwinter Jul 21 '14 at 23:10
The deployer will contact the configured Index Server to start the Kettle job. The job file and API extensions need to be present on that Index Server for it to work. If it fails, SmartTarget will log the exception as well as the status code - so check the SmartTarget logs for clues on what might be wrong (i.e. 404 = the API extension has not been installed / loaded by Fredhopper). If the extension does get called but something else goes wrong, you can also configure that one to log to a file to get more information (check the docs!). –  Peter Kjaer Jul 22 '14 at 11:16

This error also happens when publishing a SmartTarget enabled DCP while the Fredhopper instance is not running. The SmartTarget deployer extension cannot reach the Fredhopper instance to start the Ketl job.

Like Mark said the Fredhopper instance needs to be set up and the API extension and Kettle job are configured, that is a one-time activity. After that the Fredhopper deployment agent and the instance need to be running whenever your Tridion publisher and web applications are running. Not only the deployer needs to access the Fredhopper instance, but also the websites want to query the instance.

You can have a task in the Windows Task Scheduler to start the deployment agent and the instance on server start. See the Fredhopper Learning Center (the login is documented in the SmartTarget documentation).

On a development box I usually start both deployment agent and instance manually.

share|improve this answer
hi Jan, my instance is running (bin/instance SmartTarget) whilst i'm publishing, i too have a couple of scripts on the desktop that run when the machine starts... tried stopping and restarting them –  johnwinter Jul 23 '14 at 2:33

I'm also facing same issue. I have made sure that deployment agent and fredhopper instance were running. Getting following error in cd_core while deploying dynamic components. Any help is appreciated!

Caused by: com.tridion.deployer.ProcessingException: Unable to start kettle job in Fredhopper. Please check configuration and Fredhopper Installation at com.tridion.smarttarget.deployer.fredhopper.AbstractFredhopperDeployer.triggerKettleJob(AbstractFredhopperDeployer.java:58) ~[smarttarget_core.jar:na] at com.tridion.smarttarget.deployer.fredhopper.WebserviceDeployer.deploy(WebserviceDeployer.java:47) ~[smarttarget_core.jar:na] ... 17 common frames omitted Caused by: com.tridion.deployer.ProcessingException: Unable to start kettle job in Fredhopper; Please check configuration and Fredhopper Installation at com.tridion.smarttarget.deployer.fredhopper.AbstractFredhopperDeployer.triggerKettleJob(AbstractFredhopperDeployer.java:49) ~[smarttarget_core.jar:na] ... 18 common frames omitted

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.