2016 - 2020 First oScript.SetError Method doesn't trigger an error message in Lot/Serial Number Distribution

SOLVED

This UDS is a Column Pre-Validate on QuantityShipped against the SO Sales Order Tier Distribution table at version 2016 Std through 2020 Advanced. The SetError doesn't always trigger the error message, but it does fail (i.e. clear) the distribution number entered. The error message appears in the TraceWindow, but not to the user. The code is simple and an Exit Sub is used immediately afterwards (also tried excluding the Exit Sub to allow a normal exit - same result). I always see the same entry in the TraceWindow "SCRIPT/CallScript - VB Run Error: <<message to user>>" whether or not the message is presented. The following three line script reproduces the problem. If a second SetError is run (with the test script just enter a quantity on the same row) then it will present its message. The behavior repeats on a new row.

retVal = oScript.DebugPrint("About to Test")
retVal = oScript.SetError("Test")

Exit Sub

You may also see the Pre-Validation script run twice in the trace which is another issue.