sql server – Three types of errors occuring when deploying a SSIS package through Azure DevOps


I have a typical SSIS package which contains many loads from source CSV to destination in on-prem SQL Server, the data flows look like this – Data Flow

Outside of data flow its mainly just Logging start time and endtime with parameters – Control Flow

We had at first about 28 loads in one package, all have been running smoothly, but one day I make few changes in specified data flows, and chaos begins. First, I split the 28 loads into 2 packages, to identify which part might have the problems inside. One half of 28 loads is actually fine. So the problem seems to be in the second half. I start copying some of the loads from one half to the new package with the other half. But it seems that most of the loads from one half are problematic, even loads I haven’t touched at all before and they were not changed whatsoever. And it seems impossible to find what exactly is the problem, or where is it hidden, as the errors are complaining about a font, a dialog box and a generic error that also seems to point to some image/font, however I have not changed or done anything with the fonts, and I don’t have any dialog boxes popping up. I do have some generic C# scripts written (for HashKeys and Sequence creation), but they are in all of 28 data flows, so it makes no sense that one half is fine with the C# scripts and the other half is not.

Our CI/CD flow is – check-in changes in SSIS -> goes to Azure DevOps Pipelines to be built and then -> released. It always only crashes on release itself, not the build. And there is never a problem when running the package in SSIS itself, it always goes through.

The errors also are seemingly pretty random, always one of the three below, and its impossible catching when which error pops up.

Is there any indication what the problem might be when getting all of these errors below?

I also don’t believe it is Visual Studio or SSIS version problem, as sometimes the package does get built without problem (when not containing some of the data flows)

##[error]Unhandled Exception: System.ArgumentException: Font '?' cannot be found.
   at System.Drawing.FontFamily.GetGdipGenericSansSerif()
   at System.Drawing.FontFamily.get_GenericSansSerif()
   at System.Drawing.SystemFonts.get_DefaultFont()
   at System.Drawing.SystemFonts.get_MenuFont()
   at System.Windows.Forms.ToolStripManager.get_DefaultFont()
   at System.Windows.Forms.ToolStripItem.get_Font()
   at System.Windows.Forms.ToolStripItemInternalLayout.CommonLayoutOptions()
   at System.Windows.Forms.ToolStripDropDownButton.ToolStripDropDownButtonInternalLayout.CommonLayoutOptions()
   at System.Windows.Forms.ToolStripItemInternalLayout.GetLayoutData()
   at System.Windows.Forms.ToolStripItemInternalLayout.PerformLayout()
   at System.Windows.Forms.ToolStripItem.OnBoundsChanged()
   at System.Windows.Forms.ToolStripDropDownItem.OnBoundsChanged()
   at System.Windows.Forms.ToolStripItem.SetBounds(Rectangle bounds)
   at System.Windows.Forms.ToolStripOverflowButton.SetBounds(Rectangle bounds)
   at System.Windows.Forms.ToolStripItem.set_Size(Size value)
   at System.Windows.Forms.ToolStrip.get_OverflowButton()
   at System.Windows.Forms.ToolStripSplitStackLayout.get_OverflowButtonSize()
   at System.Windows.Forms.ToolStripSplitStackLayout.LayoutHorizontal()
   at System.Windows.Forms.ToolStripSplitStackLayout.LayoutCore(IArrangedElement container, LayoutEventArgs layoutEventArgs)
   at System.Windows.Forms.Layout.LayoutEngine.Layout(Object container, LayoutEventArgs layoutEventArgs)
   at System.Windows.Forms.Control.OnLayout(LayoutEventArgs levent)
   at System.Windows.Forms.ScrollableControl.OnLayout(LayoutEventArgs levent)
   at System.Windows.Forms.ToolStrip.OnLayout(LayoutEventArgs e)
   at System.Windows.Forms.Control.PerformLayout(LayoutEventArgs args)
   at System.Windows.Forms.Control.PerformLayout()
   at System.Windows.Forms.Control.ResumeLayout(Boolean performLayout)
   at System.Windows.Forms.ToolStrip..ctor()
   at Microsoft.NetEnterpriseServers.ExceptionMessageBoxForm.InitializeComponent()
   at Microsoft.NetEnterpriseServers.ExceptionMessageBoxForm..ctor()
   at Microsoft.NetEnterpriseServers.ExceptionMessageBox.Show(IWin32Window owner)
   at Microsoft.SqlServer.IntegrationServices.Wizard.Common.WizardMessageBox.Show(Exception error)
   at Microsoft.SqlServer.IntegrationServices.Deployment.Program.Main(String[] args)

Second error

##[error]Unhandled Exception: 
System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.
   at System.Drawing.FontFamily.GetGdipGenericSansSerif()
   at System.Drawing.FontFamily.CreateFontFamily(String name, FontCollection fontCollection)
   at System.Drawing.FontFamily..ctor(String name, Boolean createDefaultOnFail)
   at System.Drawing.Font.Initialize(String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
   at System.Drawing.Font..ctor(String familyName, Single emSize)
   at System.Drawing.SystemFonts.get_DefaultFont()
   at System.Drawing.SystemFonts.get_MenuFont()
   at System.Windows.Forms.ToolStripManager.get_DefaultFont()
   at System.Windows.Forms.ToolStripItem.get_Font()
   at System.Windows.Forms.ToolStripItemInternalLayout.CommonLayoutOptions()
   at System.Windows.Forms.ToolStripDropDownButton.ToolStripDropDownButtonInternalLayout.CommonLayoutOptions()
   at System.Windows.Forms.ToolStripItemInternalLayout.GetLayoutData()
   at System.Windows.Forms.ToolStripItemInternalLayout.PerformLayout()
   at System.Windows.Forms.ToolStripItem.OnBoundsChanged()
   at System.Windows.Forms.ToolStripDropDownItem.OnBoundsChanged()
   at System.Windows.Forms.ToolStripItem.SetBounds(Rectangle bounds)
   at System.Windows.Forms.ToolStripOverflowButton.SetBounds(Rectangle bounds)
   at System.Windows.Forms.ToolStripItem.set_Size(Size value)
   at System.Windows.Forms.ToolStrip.get_OverflowButton()
   at System.Windows.Forms.ToolStripSplitStackLayout.get_OverflowButtonSize()
   at System.Windows.Forms.ToolStripSplitStackLayout.LayoutHorizontal()
   at System.Windows.Forms.ToolStripSplitStackLayout.LayoutCore(IArrangedElement container, LayoutEventArgs layoutEventArgs)
   at System.Windows.Forms.Layout.LayoutEngine.Layout(Object container, LayoutEventArgs layoutEventArgs)
   at System.Windows.Forms.Control.OnLayout(LayoutEventArgs levent)
   at System.Windows.Forms.ScrollableControl.OnLayout(LayoutEventArgs levent)
   at System.Windows.Forms.ToolStrip.OnLayout(LayoutEventArgs e)
   at System.Windows.Forms.Control.PerformLayout(LayoutEventArgs args)
   at System.Windows.Forms.Control.PerformLayout()
   at System.Windows.Forms.Control.ResumeLayout(Boolean performLayout)
   at System.Windows.Forms.ToolStrip..ctor()
   at Microsoft.NetEnterpriseServers.ExceptionMessageBoxForm.InitializeComponent()
   at Microsoft.NetEnterpriseServers.ExceptionMessageBoxForm..ctor()
   at Microsoft.NetEnterpriseServers.ExceptionMessageBox.Show(IWin32Window owner)
   at Microsoft.SqlServer.IntegrationServices.Wizard.Common.WizardMessageBox.Show(Exception error)
   at Microsoft.SqlServer.IntegrationServices.Deployment.Program.Main(String[] args)

And lastly

##[error]Unhandled Exception: System.InvalidOperationException: Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.
   at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
   at Microsoft.NetEnterpriseServers.ExceptionMessageBox.Show(IWin32Window owner)
   at Microsoft.SqlServer.IntegrationServices.Wizard.Common.WizardMessageBox.Show(Exception error)
   at Microsoft.SqlServer.IntegrationServices.Deployment.Program.Main(String[] args)

Leave a Reply

Your email address will not be published. Required fields are marked *