This may be an interesting usecase for SI4T.
The publishing for a particular Page is failing with the following error in the deployer logs.
2017-04-10 12:29:53,006 ERROR TridionCommitStep - Commit failed for execution id:tcm:0-815932-66560
com.sdl.delivery.deployer.api.processing.exception.ProcessingException: Unable to commit transactions. ExecutionId:tcm:0-815932-66560
at com.sdl.delivery.deployer.steps.TridionTransactionalExecutableStep.commitTransaction(TridionTransactionalExecutableStep.java:78)
at com.sdl.delivery.deployer.steps.TridionCommitStep.process(TridionCommitStep.java:28)
at com.sdl.delivery.deployer.engine.pipeline.actor.StepActor.com$sdl$delivery$deployer$engine$pipeline$actor$StepActor$$execute(StepActor.scala:60)
at com.sdl.delivery.deployer.engine.pipeline.actor.StepActor$$anonfun$receive$1.applyOrElse(StepActor.scala:44)
at akka.actor.Actor$class.aroundReceive(Actor.scala:480)
at com.sdl.delivery.deployer.engine.pipeline.actor.StepActor.aroundReceive(StepActor.scala:27)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
at akka.actor.ActorCell.invoke(ActorCell.scala:495)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
at akka.dispatch.Mailbox.run(Mailbox.scala:224)
at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: com.tridion.broker.StorageException: Commit failed for transaction tcm:0-815932-66560 because of com.tridion.storage.si4t.IndexingException: Configuration Exception:{ ["Field name (extendeddocumentType) must match the regex [a-z0-9][a-z0-9_]{0,63}$ (near operation with index 1; document_id tcm:22-24417-64)"] } (Service: AmazonCloudSearchDomain; Status Code: 400; Error Code: DocumentServiceException; Request ID: 65ccdead-1de9-11e7-8546-f34ef8b61642)
at com.tridion.storage.management.TransactionManagerImpl.commitTransaction(TransactionManagerImpl.java:70)
at com.tridion.storage.StorageManagerFactory.commitTransaction(StorageManagerFactory.java:227)
at com.sdl.delivery.deployer.steps.TridionTransactionalExecutableStep.commitTransaction(TridionTransactionalExecutableStep.java:76)
... 14 common frames omitted
Caused by: com.tridion.broker.StorageException: com.tridion.storage.si4t.IndexingException: Configuration Exception:{ ["Field name (extendeddocumentType) must match the regex [a-z0-9][a-z0-9_]{0,63}$ (near operation with index 1; document_id tcm:22-24417-64)"] } (Service: AmazonCloudSearchDomain; Status Code: 400; Error Code: DocumentServiceException; Request ID: 65ccdead-1de9-11e7-8546-f34ef8b61642)
at com.tridion.storage.si4t.JPASearchDAOFactory.commitTransaction(JPASearchDAOFactory.java:202)
at com.tridion.storage.management.TransactionManagerImpl.commitTransaction(TransactionManagerImpl.java:65)
... 16 common frames omitted
Caused by: com.tridion.storage.si4t.IndexingException: Configuration Exception:{ ["Field name (extendeddocumentType) must match the regex [a-z0-9][a-z0-9_]{0,63}$ (near operation with index 1; document_id tcm:22-24417-64)"] } (Service: AmazonCloudSearchDomain; Status Code: 400; Error Code: DocumentServiceException; Request ID: 65ccdead-1de9-11e7-8546-f34ef8b61642)
at org.si4t.cloudsearch.CloudSearchIndexer.commit(CloudSearchIndexer.java:163)
at com.tridion.storage.si4t.SearchIndexProcessor.triggerIndexing(SearchIndexProcessor.java:274)
at com.tridion.storage.si4t.JPASearchDAOFactory.commitTransaction(JPASearchDAOFactory.java:189)
... 17 common frames omitted
Here extendeddocumentType
is a metadata field of a Category as a Radio Button where there is a default value set.
There are few more similar fields upgradepath
but not as Radio Button but Tree and those do not throw any error. Interestingly I do not see this field entry in my Page Template output in Template Builder. (see below)
Apart from that, in the below XML, field product
is also a Category/Keyword based field and it is also listed in <custom>
node of the XML, but this does not throw any error.
Here is the XML output of my Page Template:
AddIndexData: Found Search Index Data in package:
<?xml version="1.0" encoding="UTF-8"?>
<indexdata>
<url>/en/support/product-support/software/Zetasizer-family-software-update-v7-10.html</url>
<title>Zetasizer family software update v7.10</title>
<publicationid>22</publicationid>
<schemaid>102</schemaid>
<itemtype>64</itemtype>
<parentsgid>1242</parentsgid>
<sgid>1242</sgid>
<sgid>159</sgid>
<sgid>158</sgid>
<sgid>8</sgid>
<type>0</type>
<body>Zetasizer family s .......... feature key.</body>
<custom>
<date>2014-04-16T15:21:46.0000000Z</date>
<product>8023</product>
<product>8016</product>
<product>8017</product>
<language>3006</language>
<language>3011</language>
<extendeddocumentType>9758</extendeddocumentType>
</custom>
</indexdata>
In above XML:
<custom>
<date>2014-04-16T15:21:46.0000000Z</date>
<product>8023</product>
<product>8016</product>
<product>8017</product>
<language>3006</language>
<language>3011</language>
<extendeddocumentType>9758</extendeddocumentType>
</custom>
The value for <extendeddocumentType>9758</extendeddocumentType>
definitetly matches the regex [a-z0-9][a-z0-9_]{0,63}$
so the error in description does not make any sense.
This might be that the value 9758
is not the expected value of this field, I am not sure as 9758
is not the actual value I have in metadata, my default Radio Button is set to Software Products
radio.
Can anyone help me here?
For now I have a work around in place: >> Sorry below did not work actually.
- Copy the Page that is currently failing
- Publish that copy
This worked with no errors. This part is still unclear to me, why it behaves this way.