Explanation: Note that private flow has error scope defined as On Error Continue . So when error occurs in private flow , it is handled by this On Error Continue scope which sends success response back to main flow and does not throw back an error. So main continues normally and payload is set to Success - main flow.
Hence correct answer is Success - main flow
1) HTTP listener received request
2) The Flow Reference calls the child flow
3) The Is Number validator creates an Error Object because the payload isn’t an integer. Child Flow execution stops
#[error.description] = “payload is not a valid INTEGER value”
#[error.errorType] = VALIDATION:INVALID_NUMBER
4) The On Error Continue handles the errorThe payload is set to “Error – Sub Flow”
5) “Error – Sub Flow” is returned to the main flow as if the child flow was a success. The Set Payload is executed. The payload is reset to “Success – Finished Main Flow”
6) “Success – Main Flow” is returned to the requestor in the body of the HTTP request. HTTP Status Code: 200
As you can see, in the above example, because the error was caught by an On Error Continue scope in the child flow (RED in, GREEN out) when the Mule Message returns to the parent flow, the parent flow knows none-the-different that there was a failure because the on error continue returns a 200 success message. Note that because, to the mainFlow, the childFlow appeared to succeed, the processing of mainFlow resumed after the flow reference.
A picture containing timeline
Description automatically generated