SnowConvert AI - SSIS Conversion Issues¶
This section provides detailed documentation for all Error, Warning, and Information (EWI) messages that SnowConvert may generate during SSIS to dbt conversion.
For assistance with any EWI, you can use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions, or contact snowconvert-support@snowflake.com for additional support.
SSC-EWI-SSIS0001¶
SSIS component requires manual implementation.
Severity¶
Critical
Description¶
This EWI is added when an SSIS component cannot be automatically converted to Snowflake SQL or dbt. The component is not supported by SnowConvert’s conversion engine and requires manual implementation. This typically occurs with custom components, third-party transformations, or components that have no direct equivalent in Snowflake’s architecture.
The conversion will place a placeholder comment in the generated code indicating where manual intervention is required.
Converted Code¶
Best Practices¶
Review the original SSIS component’s logic and data transformation requirements
If possible, implement equivalent functionality using Snowflake SQL, dbt models, or Snowflake stored procedures
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0002¶
SSIS expression requires manual translation to Snowflake SQL.
Severity¶
High
Description¶
This EWI is generated when an SSIS expression contains syntax that cannot be automatically translated to Snowflake SQL. This commonly occurs with:
Complex nested expressions with unsupported functions
SSIS-specific functions without direct Snowflake equivalents
Malformed expressions (e.g., unbalanced parentheses)
Expressions using unsupported operators or type conversions
The generated code will include a placeholder where the expression should be manually translated.
Converted Code¶
Best Practices¶
Carefully review the original SSIS expression logic
If possible, manually translate the expression to valid Snowflake SQL syntax
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0003¶
Embedded SQL requires manual translation to Snowflake syntax.
Severity¶
High
Description¶
This EWI is added when SQL statements embedded in SSIS components (such as OLE DB Source, Lookup, or Execute SQL Task) cannot be automatically converted to Snowflake syntax. This typically occurs when:
The source SQL dialect has syntax incompatible with Snowflake
The SQL contains system-specific functions or objects
The SQL uses features not supported in Snowflake
Converted Code¶
SSC-EWI-SSIS0004¶
SSIS Control Flow Element requires manual implementation.
Severity¶
High
Description¶
This EWI is generated when an SSIS control flow element cannot be converted to Snowflake scripting. This can occur with various unsupported control flow tasks and containers, including but not limited to:
Common Scenarios:
Control flow task types not yet supported by SnowConvert
Container iteration logic that cannot be directly translated
Complex control flow patterns without Snowflake equivalents
Control flow elements with configurations that cannot be mapped to Snowflake
The specific control flow element that triggered this EWI will be identified in the error message, and manual implementation is required using Snowflake’s procedural SQL constructs.
Common Cases¶
For Loop Container¶
For Loop containers with iteration logic (initialization, condition, increment) that cannot be automatically converted.
Converted Code:
Best Practices for For Loop:
Convert to Snowflake’s WHILE loops with explicit counter variables
ForEach Loop Container (Non-File Enumerator)¶
ForEach Loop containers with enumerators other than the File Enumerator (which has its own EWI SSC-EWI-SSIS0014).
Converted Code:
Best Practices for ForEach Loop:
Identify the enumerator type (ADO, NodeList, Variable, etc.)
Other Unsupported Control Flow Elements¶
Other control flow tasks and elements that may generate this EWI include:
Custom tasks without Snowflake equivalents
Third-party control flow elements
Certain configurations of standard tasks
Complex event handlers
SSC-EWI-SSIS0005¶
Execute Package Task converted to asynchronous EXECUTE TASK.
Severity¶
High
Description¶
This EWI indicates that an SSIS Execute Package Task has been converted to a Snowflake TASK, which executes asynchronously by default. In SSIS, Execute Package Task runs synchronously within the parent package’s execution context. In Snowflake, EXECUTE TASK triggers the task to run asynchronously, which may affect orchestration logic, error handling, and variable passing between packages.
Converted Code¶
SSC-EWI-SSIS0006¶
Execute Package Task variable bindings require manual implementation.
Severity¶
High
Description¶
This EWI is generated when an Execute Package Task contains variable bindings (parameter mappings between parent and child packages) that could not be automatically converted. SSIS allows parent packages to pass variable values to child packages through parameter bindings. This mechanism requires manual implementation in Snowflake.
Converted Code¶
SSC-EWI-SSIS0007¶
Property expressions require manual implementation.
Severity¶
High
Description¶
This EWI is generated when an SSIS executable (task or container) uses property expressions to dynamically set properties at runtime, and these expressions could not be converted. Property expressions in SSIS allow dynamic configuration of task properties using expressions based on variables or parameters. In Snowflake, similar dynamic behavior must be implemented manually.
Converted Code¶
Best Practices¶
Use EXECUTE IMMEDIATE for dynamic SQL execution
Validate dynamically constructed SQL to prevent injection risks
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0008¶
Execute Package Task references external package not in conversion scope.
Severity¶
Medium
Description¶
This EWI indicates that an Execute Package Task references a package that exists outside the current project or conversion scope. Ensure all dependent packages are available for the migration process.
Converted Code¶
Best Practices¶
Create an inventory of all external package dependencies
If possible, include external packages in the conversion scope
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0009¶
Unexpected error during component conversion.
Severity¶
High
Description¶
This EWI indicates that an unexpected error occurred during the conversion of a specific component. This is typically a rare occurrence and may be caused by:
Corrupted package metadata
Unusual component configuration
Edge cases not covered by the converter
The component may have been partially converted. Review the generated code and contact support if the issue persists.
Converted Code¶
SSC-EWI-SSIS0010¶
Multiple models write to the same destination table.
Severity¶
High
Description¶
This EWI is generated when multiple SSIS components write to the same destination table, resulting in multiple dbt models targeting the same table. This typically occurs when:
Multiple Data Flow Tasks write to the same table
Different packages in the same conversion write to the same table
The same table is used as a destination in multiple transformations
Converted Code¶
Best Practices¶
Review duplicate destination references in your packages
If possible, consolidate multiple writes to the same table into a single model
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0011¶
Result binding configured for non-SELECT statement.
Severity¶
High
Description¶
This EWI is generated when an Execute SQL Task has a result binding configured (to capture query results into a variable), but the SQL statement is not a SELECT query. Result bindings only work with SELECT statements that return result sets. If the SQL statement is an INSERT, UPDATE, DELETE, or procedural statement, the result binding cannot be applied and must be manually addressed.
For non-query statements, consider using OUTPUT parameters or separate SELECT statements to retrieve values.
Converted Code¶
Best Practices¶
Use separate SELECT statements to retrieve values after DML operations
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0012¶
XML result set requires manual implementation.
Severity¶
High
Description¶
This EWI is generated when an Execute SQL Task is configured to return results as XML, which is not directly supported in the conversion. SnowConvert supports SINGLEROW and FULLRESULTSET result types, but XML result sets require manual implementation.
Converted Code¶
SSC-EWI-SSIS0013¶
Complex property expression requires manual implementation.
Severity¶
High
Description¶
This EWI is generated when a property expression in an SSIS task contains patterns that cannot be automatically converted. SnowConvert supports simple property expressions such as:
Single variable references:
@[User::VariableName]Simple string concatenation:
"SELECT * FROM " + @[User::TableName]
More complex patterns involving multiple operations, nested expressions, or complex string manipulation require manual conversion.
Converted Code¶
SSC-EWI-SSIS0014¶
ForEach File Enumerator requires Snowflake stage mapping.
Severity¶
High
Description¶
This EWI is generated when a ForEach File Enumerator Container is used to iterate over files in a folder. In SSIS, this references local or network file system paths. In Snowflake, files must be staged in Snowflake internal or external stages. You must:
Map the folder path to a Snowflake stage
Replace the
<STAGE_PLACEHOLDER>with your actual stage nameEnsure files are uploaded to the stage before execution
Implement the file enumeration logic using Snowflake’s LIST command
Converted Code¶
Best Practices¶
Create a Snowflake stage for file storage
Upload files to the stage using SnowSQL, Snowpipe, or cloud storage integration
Update the stage reference in the generated code
Test file enumeration with actual staged files
Use Snowflake’s LIST command to verify files are accessible
Document stage naming conventions for your project
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0015¶
Send Mail Task file attachments are not supported in Snowflake.
Severity¶
High
Description¶
This EWI is generated when an SSIS Send Mail Task is configured with file attachments. Snowflake’s SYSTEM$SEND_EMAIL procedure does not support sending file attachments directly. The email will be sent without the attachments.
To include file content in emails, you must upload files to a Snowflake stage and generate shareable links using GET_PRESIGNED_URL().
Converted Code¶
Best Practices¶
Upload files to a Snowflake stage before sending the email
Generate pre-signed URLs using
GET_PRESIGNED_URL(@stage_name, 'filename', expiration_seconds)Include the shareable link in the email body instead of the attachment
Consider using external file sharing services for large attachments
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0016¶
Send Mail Task email priority is not supported in Snowflake.
Severity¶
Medium
Description¶
This EWI is generated when an SSIS Send Mail Task is configured with a priority setting (High, Normal, or Low). Snowflake’s SYSTEM$SEND_EMAIL does not support email priority headers. The email will be sent without priority information.
Converted Code¶
Best Practices¶
Add priority indicators to the email subject line (e.g.,
[URGENT],[HIGH PRIORITY])No other manual action required for basic functionality
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0017¶
Send Mail Task file-based message source is not supported.
Severity¶
High
Description¶
This EWI is generated when an SSIS Send Mail Task uses a File Connection as the message source type. Snowflake’s SYSTEM$SEND_EMAIL requires the message body to be provided as a string value directly. Loading email content from external files is not supported during conversion.
Converted Code¶
Best Practices¶
Load the file content into a Snowflake stage
Read the file content using Snowflake functions and store it in a variable
Pass the variable content to
SYSTEM$SEND_EMAILConsider migrating email templates to Snowflake tables or variables
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0018¶
Send Mail Task HTML body format is not supported in Snowflake.
Severity¶
Medium
Description¶
This EWI is generated when an SSIS Send Mail Task is configured with HTML body format. Snowflake’s SYSTEM$SEND_EMAIL only supports plain text email bodies. HTML tags will appear as literal text in the email and will not be rendered.
Converted Code¶
Best Practices¶
Convert HTML content to plain text before sending
Use text formatting conventions like asterisks for emphasis (
*bold*)Use ASCII art or spacing for tabular data
Consider using external email services if HTML formatting is required
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0020¶
Bulk Insert Task native data file type is not supported in Snowflake.
Severity¶
Critical
Description¶
This EWI is generated when an SSIS Bulk Insert Task is configured with DataFileType set to DTSBulkInsert_DataFileType_Native or DTSBulkInsert_DataFileType_WideNative. These binary formats are SQL Server proprietary and cannot be read by Snowflake’s COPY INTO command.
Native data files store data in SQL Server’s internal binary format for faster bulk operations. Since Snowflake cannot interpret these formats, the source data must be exported to a supported format (CSV, JSON, Parquet, etc.) before migration.
Converted Code¶
Best Practices¶
Export data from SQL Server to CSV or another supported format before migration
Consider Parquet format for better performance with large datasets
Update the FILE_FORMAT in the generated code to match your exported format
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0021¶
Bulk Insert Task LastRow option is not supported in Snowflake.
Severity¶
High
Description¶
This EWI is generated when an SSIS Bulk Insert Task specifies a LastRow value to limit the number of rows loaded. Snowflake’s COPY INTO command does not support stopping at a specific row number.
To achieve similar functionality, you must load the data into a staging table and then use SQL with ROW_NUMBER() and LIMIT to select the desired row range.
Converted Code¶
Best Practices¶
Load data into a staging table first, then use SQL to filter rows
Consider pre-processing the source file to contain only the needed rows
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
Manual Support¶
Load all data to a staging table, then insert only the rows up to the desired LastRow value:
SSC-EWI-SSIS0022¶
Bulk Insert Task FireTriggers option is not supported in Snowflake.
Severity¶
Medium
Description¶
This EWI is generated when an SSIS Bulk Insert Task has the FireTriggers option enabled. In SQL Server, this option causes INSERT triggers to fire during the bulk load operation. Snowflake does not have traditional database triggers.
To implement trigger-like behavior in Snowflake, use Streams and Tasks to detect and process data changes after the load completes.
Converted Code¶
Best Practices¶
Review the original SQL Server trigger logic
Create a Snowflake Stream on the target table to capture data changes
Create a scheduled Task to process the stream data (equivalent to trigger logic)
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
Manual Support¶
Implement trigger-like behavior using Snowflake Streams and Tasks:
SSC-EWI-SSIS0023¶
Bulk Insert Task FormatFile is not supported in Snowflake.
Severity¶
Medium
Description¶
This EWI is generated when an SSIS Bulk Insert Task uses a format file (.fmt or .xml) to define the data layout. Snowflake does not support SQL Server format files. Instead, you must create an equivalent Snowflake FILE FORMAT object that defines the same parsing rules.
Converted Code¶
Best Practices¶
Review the original format file to understand field definitions, terminators, and data types
Create an equivalent Snowflake FILE FORMAT object
For complex format files with column mappings, consider using a staging table with explicit column selection
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
Manual Support¶
Create an equivalent Snowflake FILE FORMAT based on the format file contents:
SSC-EWI-SSIS0024¶
Bulk Insert Task stage and file upload not included in translation.
Severity¶
Medium
Description¶
This EWI is always generated for Bulk Insert Task conversions to remind you that Snowflake requires files to be staged before they can be loaded. Unlike SSIS which can read directly from file system paths, Snowflake’s COPY INTO command requires files to be in a Snowflake stage (internal or external).
You must create a stage, upload your source files, and replace the {STAGE_PLACEHOLDER} in the generated code with your actual stage name.
Converted Code¶
Best Practices¶
Create a Snowflake stage for your source files
Upload files using SnowSQL CLI with the PUT command
Replace
{STAGE_PLACEHOLDER}with your stage name in the generated codeVerify files are staged correctly using
LIST @my_stage;Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
Manual Support¶
Create a stage and upload your source files before executing the COPY INTO:
SSC-EWI-SSIS0025¶
Flat File Source stage path variable requires manual mapping to a Snowflake stage.
Severity¶
High
Description¶
This EWI is generated when a Flat File Source component references a stage path variable that must be manually mapped to a Snowflake stage. In SSIS, Flat File Source components read directly from file system paths. In Snowflake, files must be staged before they can be queried. The generated code uses a dbt variable for the stage path, which must be updated to point to the actual Snowflake stage containing the source file.
Converted Code¶
Best Practices¶
Create a Snowflake stage and upload your flat files before execution
Update the stage path variable in the task CONFIG section to point to your Snowflake stage (e.g.,
@my_stage/input_files/)Verify the FILE_FORMAT object matches your source file’s delimiters and encoding
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0026¶
SSIS property expression is not supported.
Severity¶
High
Description¶
This EWI is generated when an SSIS component uses a property expression that cannot be converted to Snowflake. Property expressions in SSIS dynamically set component properties at runtime using SSIS expression syntax. Certain property expressions — particularly those referencing project parameters, complex concatenations, or unsupported expression functions — cannot be automatically translated. The original expression is preserved in the generated code as a comment for manual resolution.
Converted Code¶
Best Practices¶
Review the original SSIS property expression and manually implement the equivalent logic
For connection string expressions, replace with the actual Snowflake stage path or connection reference
Use dbt variables (
{{ var('...') }}) or Snowflake task CONFIG parameters for runtime configurationUse the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0027¶
Flat File Source connection manager not found.
Severity¶
High
Description¶
This EWI is generated when a Flat File Source component references a connection manager that cannot be found in the SSIS package. This typically occurs when:
The connection manager is defined at the project level and not embedded in the
.dtsxpackageThe connection manager reference is broken or misconfigured
The
.conmgrfile is missing from the project
Without the connection manager, SnowConvert cannot determine the file path, format, or column definitions, so the generated code contains null placeholder columns.
Converted Code¶
Best Practices¶
Locate the missing connection manager (
.conmgrfile) and include it in the conversion scopeVerify the connection manager reference ID matches between the Data Flow component and the package
Manually define the source query with the correct columns and stage path
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0028¶
Excel Source error row redirection requires alternative implementation.
Severity¶
High
Description¶
This EWI appears in the migration assessment report when an SSIS Excel Source component has an error output configured with RedirectRow disposition. In SSIS, error rows can be redirected to a separate output for logging or reprocessing. This pattern cannot be directly translated to Snowflake SQL.
The generated dbt model processes all rows without error redirection. To achieve similar error handling behavior in Snowflake, use TRY_TO_* casting functions with error flag columns for defensive error handling, and create separate error capture models if needed.
Converted Code¶
The generated dbt model reads data normally without error handling:
To add error row redirection, modify the model like this:
Best Practices¶
Use
TRY_TO_NUMBER,TRY_TO_DATE, and otherTRY_TO_*functions for defensive castingAdd error flag columns to identify rows with conversion issues
Create a separate dbt model to capture and log error rows:
SELECT * FROM {{ ref('my_model') }} WHERE _has_error = TRUEUse the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0029¶
Excel Source parameterized queries require dbt vars or macros.
Severity¶
High
Description¶
This EWI appears in the migration assessment report when an SSIS Excel Source component uses parameter mappings to pass runtime values into the query. SSIS allows parameterized queries in Excel Source using ? placeholders bound to SSIS variables. This pattern cannot be directly translated.
The generated dbt model reads the full Excel sheet without applying parameter filtering. You must manually add the equivalent filtering using dbt var() functions or Jinja templating.
Converted Code¶
The generated dbt model reads all data from the sheet:
Best Practices¶
Replace SSIS parameter placeholders with dbt
{{ var('param_name') }}referencesPass values at runtime using
dbt run --vars '{"param_name": "value"}'Add WHERE clauses or CTE filters to replicate the original parameterized query logic
Consider using dbt macros for complex parameterized logic
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0030¶
Excel Source project-level connection manager requires external resolution.
Severity¶
Medium
Description¶
This EWI appears in the migration assessment report when an SSIS Excel Source component references a connection manager defined at the project level (in a .conmgr file) rather than embedded in the .dtsx package. SnowConvert cannot automatically resolve project-level connection managers because the .conmgr file may not be included in the conversion scope.
The generated dbt model may use a placeholder or default stage path. You must locate the corresponding .conmgr file and extract the ConnectionString property to determine the Excel file path and HDR (header row) setting, then update the stage file path variable in dbt_project.yml.
Converted Code¶
The generated dbt model uses a stage file path variable that needs to be updated:
Best Practices¶
Locate the
.conmgrfile in your SSIS project directory — it will be named after the connection managerOpen the
.conmgrfile and find theConnectionStringproperty to get the Excel file path andHDR=YES/NOsettingInclude
.conmgrfiles in the conversion input folder and re-run the conversion for better resultsUpdate the
stage_file_pathvariable indbt_project.ymlto point to your Snowflake stageUse the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0031¶
Excel Source CONFIG variable requires manual mapping.
Severity¶
Medium
Description¶
This EWI appears in the migration assessment report when the conversion creates a CONFIG variable for an Excel Source stage file path. The generated orchestration task includes a CONFIG section with a default value derived from the original SSIS package’s connection string. You must update this variable to reference the correct Snowflake stage and Excel file path before execution.
The default value follows the pattern @excel_source_stage/<filename>.xlsx and is also registered in dbt_project.yml under the vars: section.
Converted Code¶
The orchestration task includes the stage file path as a CONFIG variable:
Best Practices¶
Upload your Excel file to a Snowflake stage:
PUT file:///path/to/sales_data.xlsx @my_stage AUTO_COMPRESS = FALSE;Update the CONFIG variable value to point to the staged file (e.g.,
@my_stage/sales_data.xlsx)Also update the corresponding variable in
dbt_project.ymlundervars:Verify the file is accessible from the stage using
LIST @my_stage;Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0032¶
Excel Source variable-based access mode not supported.
Severity¶
High
Description¶
This EWI appears in the migration assessment report when an SSIS Excel Source component uses a variable-based access mode to dynamically resolve the sheet name or SQL query at runtime. SSIS supports four access modes:
0: Table or view (static sheet name) — supported
1: Table name or view name from variable — not supported
2: SQL command (static query) — supported
3: SQL command from variable — not supported
For modes 1 and 3, the sheet name or query is stored in an SSIS variable and resolved at runtime. This dynamic resolution cannot be automatically translated. The generated model reads the full sheet using the static OpenRowset value from the component configuration. You must manually add the dynamic sheet or query logic using dbt vars.
Converted Code¶
The generated dbt model uses the static sheet name from the component definition:
Best Practices¶
Replace the static sheet name with a dbt
{{ var('sheet_name') }}reference if it needs to be dynamicPass the sheet name at runtime using
dbt run --vars '{"sheet_name": "Sheet1"}'If the variable resolved to a SQL command (access mode 3), convert the query logic to WHERE clauses or CTEs in the dbt model
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0033¶
Excel Source SQL command filtering logic not preserved.
Severity¶
Medium
Description¶
This EWI appears in the migration assessment report when an SSIS Excel Source component uses the SQL Command access mode (mode 2) with a query that includes filtering, joins, or aggregation logic. For example, the original SSIS component might use SELECT * FROM [Sheet1$] WHERE Status = 'Active'.
The generated dbt model reads the full Excel sheet via the excel_source_udf UDF and does not apply the original SQL filtering. You must add the equivalent filtering as downstream CTEs or WHERE clauses in the dbt model.
Converted Code¶
The generated dbt model reads all data from the sheet without the original SQL filtering:
Best Practices¶
Check the assessment report for the original SQL command text
Add the equivalent WHERE clause, JOINs, or aggregation as CTEs in the dbt model
Test the output row count to ensure it matches the original SSIS component’s results
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0034¶
Flat file format is not supported.
Severity¶
High
Description¶
This EWI is generated when an SSIS Flat File Source component uses a file format that cannot be automatically converted to Snowflake. Snowflake’s COPY INTO command and FILE_FORMAT objects support delimited (CSV) files but do not directly support certain SSIS flat file formats such as:
FixedWidth: Files where columns are defined by character position and width
RaggedRight: Files where the last column has a variable length delimiter
For these formats, the source file must be pre-processed or transformed into a delimited format before loading into Snowflake.
Converted Code¶
Best Practices¶
Convert FixedWidth files to CSV or another delimited format before staging in Snowflake
For RaggedRight files, add a consistent delimiter to the last column
Use Python UDFs or external functions for complex format transformations
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0035¶
Non-standard header row delimiter is not supported.
Severity¶
High
Description¶
This EWI is generated when an SSIS Flat File connection manager specifies a header row delimiter that is not a newline character. Snowflake’s FILE_FORMAT expects header rows to be terminated by the standard record delimiter (typically \n or \r\n). Non-standard header row delimiters cannot be configured in Snowflake.
Converted Code¶
Best Practices¶
Pre-process the source file to replace the non-standard header delimiter with a newline character
Alternatively, remove the header row and use
SKIP_HEADER = 0in the FILE_FORMATUse the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0036¶
Flat File Source feature is not supported.
Severity¶
High
Description¶
This EWI is generated when a Flat File Source component uses a feature that is not supported by SnowConvert’s conversion engine. The specific unsupported feature is identified in the EWI message. Common unsupported features include:
Multiple Flat Files connection manager: Connection managers configured to read from multiple files simultaneously
Per-column delimiters: Different delimiters for individual columns
Per-column text qualified settings: Individual text qualifier settings per column
Unsupported CodePage: Character encoding not supported by Snowflake
Unsupported LocaleID: Locale-specific formatting not supported by Snowflake
Multi-character text qualifier: Text qualifiers longer than a single character
Converted Code¶
Best Practices¶
Review the specific unsupported feature identified in the EWI message
For multiple flat files, use Snowflake’s PATTERN option in COPY INTO to load multiple files from a stage
For per-column delimiters, pre-process the file to use a uniform delimiter
For unsupported code pages, convert the file encoding to UTF-8 before staging
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0037¶
SSIS expression function not reviewed for Snowflake equivalence.
Severity¶
Medium
Description¶
This EWI is generated when an SSIS expression uses a function that has not been reviewed for Snowflake equivalence. The function has been passed through to the generated code as-is, but it may not exist or behave differently in Snowflake. Manual review is required to verify or replace the function with the appropriate Snowflake equivalent.
Converted Code¶
Best Practices¶
Look up the SSIS expression function in the SSIS Expression Reference (https://learn.microsoft.com/en-us/sql/integration-services/expressions/functions-ssis-expression) to understand its behavior
Find the equivalent Snowflake function (e.g., SSIS
TOKEN→ SnowflakeSPLIT_PART)Replace the function call with the Snowflake equivalent and test the output
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0038¶
SSIS FileSystemTask path requires manual mapping to a Snowflake stage.
Severity¶
High
Description¶
This EWI is generated when an SSIS File System Task uses a File Connection Manager to reference a file or directory path. In SSIS, File System Tasks operate directly on local or network file system paths. In Snowflake, file operations use stages instead of file system paths.
The generated code uses @<STAGE_PLACEHOLDER> where the original path was. You must replace this placeholder with the actual Snowflake stage and path that corresponds to the original file location.
Converted Code¶
Best Practices¶
Replace
@<STAGE_PLACEHOLDER>with your actual Snowflake stage name (e.g.,@my_stage)Create the stage if it does not exist:
CREATE OR REPLACE STAGE my_stage;Ensure files are uploaded to the stage before executing file operations
For operations referencing multiple paths, each
@<STAGE_PLACEHOLDER>may map to a different stageUse the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0039¶
SSIS FileSystemTask overwrite=false not supported in Snowflake.
Severity¶
High
Description¶
This EWI is generated when an SSIS File System Task is configured with OverwriteDestinationFile = False. In SSIS, this setting causes the task to fail if the destination file or directory already exists, providing a safety guard against accidental overwrites.
Snowflake’s COPY FILES INTO command always silently overwrites existing files at the destination. There is no built-in mechanism to check for file existence before copying. If your workflow depends on the fail-if-exists behavior, you must implement a manual check.
Converted Code¶
Best Practices¶
If fail-if-exists behavior is required, add a pre-check using
LIST @stage/pathand raise an error if the file existsConsider using
SYSTEM$STREAM_HAS_DATAor a control table to track file processing stateReview whether the overwrite guard is critical to your workflow or simply a safety measure
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
Manual Support¶
Implement a file existence check before copying:
SSC-EWI-SSIS0041¶
SSIS FileSystemTask references an external or unresolvable connection manager.
Severity¶
High
Description¶
This EWI is generated when an SSIS File System Task references a connection manager for its source or destination path that is not defined within the .dtsx package file. This typically occurs when the connection manager is defined at the project level (in a .conmgr file) or when the reference is broken.
Without the connection manager definition, SnowConvert cannot resolve the file path. The unresolvable path is replaced with @<STAGE_PLACEHOLDER> in the generated code.
Converted Code¶
Best Practices¶
Locate the missing connection manager in your SSIS project (check for
.conmgrfiles)Include
.conmgrfiles in the conversion input folder and re-run the conversionReplace
@<STAGE_PLACEHOLDER>with the correct Snowflake stage path derived from the connection manager’s file pathUse the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0043¶
SSIS FileSystemTask SetAttributes operation not supported in Snowflake.
Severity¶
High
Description¶
This EWI is generated when an SSIS File System Task is configured with the SetAttributes operation. In SSIS, this operation sets file system attributes such as Read-Only, Hidden, Archive, or System on a file or directory. Snowflake stages do not support file attributes — all staged files are accessible without attribute-based access control.
The generated code contains an empty statement (;) with diagnostic comments preserving the original task configuration for reference.
Converted Code¶
Best Practices¶
Review whether the file attribute setting is critical to your workflow
If access control is needed, use Snowflake role-based access control (RBAC) on the stage instead
The empty statement can be safely removed if no alternative is needed
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-SSIS0044¶
SSIS FileSystemTask COPY FILES destination appends source filename.
Severity¶
High
Description¶
This EWI is generated for every file-level copy, move, or rename operation in an SSIS File System Task. Snowflake’s COPY FILES INTO command treats the destination as a directory prefix and appends the source filename automatically. This means:
If your SSIS task copies
source.csvto a destination path@stage/output/renamed.csv, the actual result will be@stage/output/renamed.csv/source.csv— which is likely not the intended behaviorIf the destination is a directory path (e.g.,
@stage/output/), the behavior is correct
Review the destination path in the generated code and adjust manually if the destination refers to a specific file rather than a directory.
Converted Code¶
Best Practices¶
If the destination is a directory, the generated code works correctly as-is
If the destination is meant to be a specific filename (rename scenario), use a two-step approach: copy to a directory, then rename using
COPY FILES INTO+REMOVEFor move operations, verify that the source file is correctly removed after the copy
Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI
If you need more support, you can email us at snowconvert-support@snowflake.com