Search code examples
ssisssis-2012

SSIS 2012 - script task won't run second time (unless debugging)


I'm getting a really tough error in SSIS 2012. I am just running in SSDT.

I have a script task inside a For...Each block.

It runs fine the first time it is reached.

The second time it is reached, I get a generic "Exception thrown by object of invocation error", attributed to the script, at the script task.

It is a small script, all inside Main(), and with a Try...Catch block.
I am not hitting the Catch, which adds custom text.
It seems like it is behaving as if it never enters the Script...

except
if I actually set a breakpoint in it.... in which case it runs fine,
whether I step line-by-line or just hit F5.

I know this isn't terribly specific, but I'm hoping someone has seen this.

Has anyone seen anything like this before?


As mentioned, I have tried debugging (obviously), but then I don't get any error.

I have tried changing my variable access from the basic to through VariablesDispenser.LockOneForRead, in case it is something with variables that happens before Main(). I think I got all the places the variables are used in the loop, but that didn't help.


Solution

  • Because this was so killer, I'm going ahead and answering it.

    It was actually an un-"declared" variable, but in my Catch block.
    Copy-paste error :/

    I was using a variable as
    "Dts.Variables["TaskName"]"
    in the Catch block, but I had not selected it in the Script Task window.

    I have no idea why it didn't give me the specific "not found in collection" error.
    I have certainly run into this before and seen that. :/