org.apache.ode.bpel.iapi.PartnerRoleMessageExchange#replyWithFault(QName faultType, Message outputFaultMessage)
The faultType is actually used as the fault name. If you actually pass the fault type, fault management will fail because FaultData#_faultName is a the fault type.
See org.apache.ode.bpel.runtime.INVOKE, line 168.
Fault Management has been working fine so far because this bug is masked by another one: SoapExternalService already provides the fault name instead of the fault type.
The fix is to change replyWithFault signature to accept the fault name.