Escalation Event Handling for multiple errors

Hi experts, I wanna ask for clarifications, I have a process as attached below:
Basically what I want to do is when user is currently in the sub-process for making payment, there are 3 possible outputs which;
1: user succesfully make payment and the instance will continue to main process
2. reservation will automatically cancelled when no payment is made within 48 hours. I’m doing this by attach the timer boundary event to the pay fee process.
3. When user encounters error, the system will throw a catch using escalation event. and may retry payment. (Reason: I’m using escalation event because I want the instance to continue to the main process once it completes)

My concerns now, is it possible to have multiple errors in one escalation event? My types of error should be

  1. Payment time-out
  2. System-down
  3. Insufficient balance

Also, how do I make the retry payment to be run for only 3 times? based on this photo attached, do you think this is the best practice that I can do? Or is there anything that you think I should amend. Thank you so much in advance.

Error

Personally, I would only model one of those errors as a Process error.

Insufficient Balance is a workflow error, and I would model it.

Payment Time-out sounds like a technical error (the systems underneath the process didn’t work as expected.), and you should allow the retry mechanisms in Camunda retry the payment and throw an Incident if all retries are unsuccessful.

System-Down sounds like a sub-case of Payment Time-out. (If the System is down, it will time out…)

There is nothing WRONG with modeling them as distinct errors to be caught, but I would model them as two or more errors to be caught (rather than escalations). Insufficent Funds should probably wait for a message back from the client before retrying…