"On completion" means that the following task will execute, whether the previous task succeeded or failed. "On success" means the following task will only execute when the previous task succeeds. Also check you package properties, because if the "Fail package on first error" option is set it might disregard any "On completion" workflows and fail your package before executing the "On completion" tasks.