code: @Override
      protected void beforeWaitForSynchronization(final T message) throws CouldNotPerformException {
          transactionIdField = ProtoBufFieldProcessor.getFieldDescriptor(message, TransactionIdProvider.TRANSACTION_ID_FIELD_NAME);
          if (transactionIdField == null) {
              throw new NotAvailableException("transaction id field for message[" + message.getClass().getSimpleName() + "]");
          }
  
          if (transactionIdField.getType() != Type.UINT64) {
              throw new CouldNotPerformException("Transaction id field of message[" + message.getClass().getSimpleName() + "] has an unexpected type[" + transactionIdField.getType().name() + "]");
          }
      }
docs: Verify that the internal future has a transaction id field and that this field is of type long.
  
  @param message the returned message from the internal future
  
  @throws CouldNotPerformException if the message does not have a transaction id field