Instead of using a T100 lookup or FM FORMAT_MESSAGE try this instead
DATA lv_message_text TYPE string.
CALL FUNCTION <FMNAME>
EXCEPTIONS error_message = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid
TYPE sy-msgty
NUMBER sy-msgno
INTO lv_message_text
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Now use lv_message_text to prepare your error report
Write : lv_message_text.






