Warning notifications not appearing in MIRO transaction using BADI

I need to show warning notifications in MIRO transaction when specific conditions are met. I tried using the INVOICE_UPDATE BADI with the CHANGE_AT_SAVE method but the warnings don’t show up even though my BADI code runs properly.

I found out that after my BADI executes, the system runs this logic to handle message display:

IF result_code <> 0.
  IF invoice_header-process_type NE dialog_constant.
    MESSAGE ID system_message-id TYPE system_message-type NUMBER system_message-number
           WITH system_message-var1 system_message-var2 system_message-var3 system_message-var4.
  ELSE.
    CALL FUNCTION 'STORE_MESSAGE_IN_MEMORY'
         EXPORTING
              message_class = system_message-id
              message_type = system_message-type
              variable1 = system_message-var1
              variable2 = system_message-var2
              variable3 = system_message-var3
              variable4 = system_message-var4
              text_number = system_message-number.
  ENDIF.
ENDIF.

It seems like messages only display when running in dialog mode. Are there any other user exits or enhancement points where I can properly show warning messages to users in MIRO?