RemoteTransportException - AlreadyClosedException[this IndexReader is closed]

Yep, unfortunately this was a bug introduced in 2.3.0. It was just fixed in 2.3.2 (unreleased as of writing) so should be available soonish: https://github.com/elastic/elasticsearch/pull/18094

It's unclear to me if this is actually related to the problems you're having, it may just be coincidental. Can you describe your problem a bit more?

Also, are you checking that A) there are no bulk rejections and B) if there are rejections, you're retrying the rejected documents? A rejection isn't really an error, it's just backpressure and the cluster saying "please try again later". So if you aren't retrying the rejected docs, they will be silently dropped on the floor by your app (or Heka or whatever) and never get indexed.