However, if a fault occurs in WS1 (maybe an assign with missing "from" data or otherwise) the fault policy does not take affect.It is expected. Fault policy framework works only for faults occurring in invoke activity -
If a fault occurs during runtime in an invoke activity in a process, the framework catches the fault and performs a user-specified action defined in a fault policy file associated with the activity.Please refer section "12.4 Using the Fault Management Framework" at -
I am using BPEL catch and catchAll to trap the errors.That's the correct way to handle non-invoke exceptions.
However, my goal with the fault policy is to have the option to recover with adjustments to the payload if necessary. I set my fault policy to use ora-human-intervention and can then correct faulty payloads if needed. Can I do something similar catch faults in my top-level composite using BPEL catch that allows me to adjust and retry the payload?Nope. Catch does not allow this. Ideally you should create an Exception Handling framework for this which should allow you to modify the payload and re-initiate the main BPEL. From the catch block of main BPEL you may invoke your Exception Handling framework. This will be more flexible, standard custom solution.