Вероятно, здесь future.get()
блокирует и по какой-либо причине не может вернуться в течение интервала ожидания контрольной точки.
Могу предложить, что вместо этого вы используете RichAsyncFunction Флинка.Это будет иметь преимущество в том, что подзадачи не будут блокироваться, что позволяет выполнять контрольные точки.
RichAsyncFunction будет проверять неразрешенные фьючерсы и повторно выдавать эти запросы при восстановлении после сбоя.