completely failing to commit the data to custom tablesI've never heard of failing commit (or commit_form). So, it's more likely that you either
If you read the Forms online help on the Form_Success Built-In as well as the example in the Commit_Form Built-in, you will see that you should always test Form_Status as well as Form_Success after a commit_form call (Commit within Forms is the same as Commit_Form).
Commit; do_this; do_that;
FORM_SUCCESS should not be used to test whether a COMMIT_FORM or POST Built-in has succeeded. Because COMMIT_FORM may cause many other triggers to fire, when you evaluate FORM_SUCCESS it may not reflect the status of COMMIT_FORM but of some other, more recently executed built-in. A more accurate technique is to check that the SYSTEM.FORM_STATUS variable is set to QUERY after the operation is done.Since your code does not check Form_Status and Form_Success, it is likely that the Commit_Form failed, but your do_this and do_that procedures ran anyway.
Edit: Andreas' recommendation below is the best solution!
COMMIT_FORM; IF :SYSTEM.FORM_STATUS <> 'QUERY' OR NOT FORM_SUCCESS THEN RAISE FORM_TRIGGER_FAILURE; END IF;