Storm-ES Bolt - Run Time Exceptions

I am using ESBolt to write to Elastic Search. I do get run time exceptions when there are mapping issues. I understand that the mapping issues have to be handled by Elastic Search.

Right now the exceptions are thrown and stack track is written to the log file. I would like to capture that exceptions, and log that data tuple to other system like kafka for tracking/auditing purpose. How can i get hold of that tuple when the ESBolt is throwing that exceptions and write to a different system.

EsBolt plugs into Storm infrastructure. I'm not aware of any facility to log the error instead of simply bubbling up to the top so you could simply apply the good ol' decoration pattern; wrap the bolt which your own implementation that catches the exception and logs it to whatever system you want.

In fact, this is the main reason why in ES-Hadoop exceptions are handled fail-fast; there's no general logging infrastructure across the various integrations and thus no clear way on where to put the exceptions after they occur.