I’ve setup a simple package to use CheckPoints with one Script Task in the Control Flow, and one Script Task in the OnPostExecute event handler at the package level that displays a message box. The package runs successfully and the message box is displayed.
Here’s where things get strange. If I set the Control Flow’s Script Task to fail (by setting the Dts.TaskResult to fail) when the package runs and fails, the OnPostExecute’s Script Task does not display the message box. This leads me to believe that the OnPostExecute event handler is not firing.
What's even stranger is that if I set the Control Flow’s Script Task to succeed and then rerun the package from the saved CheckPoint, the OnPostExecute event still doesn't fire.
On the contrary, if I remove the CheckPoints from the package, and run everything again the OnPostExecute event behaves as expected and fires whether the package succeeds or not.
Has anyone else noticed this? It seems to me that the OnPostExecute event should fire whenever the package completes whether one is using CheckPoints or not. Why would it not fire when using CheckPoints?