sqlsql-servert-sqlssissql-server-2016

SSIS Error: VS_NEEDSNEWMETADATA


I'm currently updating all of our ETLs using Visual Studio 2015 (made in BIDS 2008) and redeploying them to a new reporting server running on SQL Server 2016 (originally 2008R2).

While updating one of the ETLs and trying to run on the new server I got this error:


The package execution failed. The step failed.

Sometimes it also produces this error:

Source: Load Fact Table SSIS.Pipeline Description: "Copy To Fact Table" failed validation and returned validation status "VS_NEEDSNEWMETADATA".


I've tried deleting and re-adding the OLEDB Destination, connection strings and opened up the column mappings to refresh the meta data. I also recreated the whole data flow task but I'm still getting the same error.

The package runs fine on my local machine.

UPDATE:

I started taking the package apart and running only pieces of it to try and narrow down which part was failing. It seemed to be failing on loading into the staging table but I couldn't find out why.

I eventually decided to just try and re-create the whole thing. After re-creating the entire package, still no luck. The picture below is from the event viewer on the server itself but it didn't give me any new information.

enter image description here

Package error from event viewer


Solution

  • I finally found the issue and here's how I did it.

    Because the error messages I was getting from SSMS weren't very insightful I first opened up my remote desktop and logged into the server. Then I went to Administrative Tools>Event Viewer and then Windows Logs>Application to see if the failed event would provide greater detail.

    enter image description here enter image description here It didn't give me much still.

    The next step I took was to run the package from the command line because the messages should be more verbose. Opened up cmd, changed directory to the one my package was in and then...

    DTEXEC /FILE YourPackageName.dtsx
    

    Finally, the error message here showed a missing column in the tables the package was trying to write to. I added those columns and voila!