MetricSign
EN|NLRequest Access
Medium severityexecution

Power BI Refresh Error:
000659 (22001)

What does this error mean?

A string value being inserted or loaded into a Snowflake table exceeds the VARCHAR column's defined maximum length. The operation is rejected to preserve data integrity.

Common causes

  • 1A source system started producing longer strings than the column was designed for
  • 2The VARCHAR column length was set too small during table design
  • 3A free-text field in the source (comments, notes, descriptions) received an unusually long entry
  • 4A data transformation is concatenating strings that can exceed the column length
  • 5A Snowpipe or COPY INTO load received data wider than the target column definition

How to fix it

  1. 1Identify the column and the actual string length: SELECT MAX(LEN(col)) FROM source_data
  2. 2ALTER TABLE to increase the column length: ALTER TABLE <name> ALTER COLUMN <col> SET DATA TYPE VARCHAR(<new_length>)
  3. 3Add a TRUNCATE or LEFT() transformation in the pipeline if the full string is not needed
  4. 4Validate source data length before loading: add a pre-load check on the source
  5. 5For Snowpipe loads, check the COPY INTO options for the TRUNCATECOLUMNS parameter as a short-term workaround

Frequently asked questions

Does Snowflake have a maximum VARCHAR length?

Yes — VARCHAR in Snowflake supports up to 16,777,216 characters (16 MB). For most use cases, VARCHAR(16777216) is effectively unlimited.

Can I use TRUNCATECOLUMNS to avoid this error?

Yes — adding TRUNCATECOLUMNS = TRUE to a COPY INTO statement silently truncates strings that exceed the column length. Use with caution as it silently loses data.

Other execution errors