I was tasked with making changes to a fairly old SSIS component the other day which wouldn’t normally pose a problem but headaches and wasted time was heading my way.
There’s a particularly nasty property within SSIS which when set to TRUE can simply force the execution result of the component to success (TRUE).
A colleague had made some changes and everything seemed to work fine but I wanted to carry out some regression type testing. On inspecting the SSIS component I could see that some of the tasks had been copied from another component and some of the steps weren’t applicable and didn’t make sense. I smelt a rat so decided to have a poke around and a test.
I purposely failed the component by feeding it duff XML to see how it handled errors and exceptions. To my astonishment when running the component at design time green ticks filled the screen and success was reported. WTF?!
After around an hour later of head scratching and checking that the Success and Failure result outcomes would work as expected I started to look at the properties of the component. There must be something that’s completely ignoring the result outcome. I noticed ForceExecutionResult was set to Success. Clearly who’d ever worked on this in the past had put this in place to fluff through some testing/validation and had forgot to switch this off. Once I’d reset this back to the default value of None the component was working as expected and confidence returned!