metricsign
Start free
Medium severityexecutionSnowflake

Power BI Refresh Error:
255005

What does this error mean?

The Python connector successfully received an Arrow-format result stream from Snowflake but failed to deserialize it locally. The Arrow data is corrupted, truncated, or in an incompatible format.

Common causes

  • 1Version mismatch between the pyarrow version installed and the Arrow format produced by Snowflake
  • 2Network error caused a truncated Arrow stream to be received
  • 3Memory exhaustion on the client causing the Arrow deserialization to fail mid-stream
  • 4A pyarrow bug or incompatibility with the specific Snowflake query result type
  • 5Very large result sets exceeding available memory during Arrow deserialization

How to fix it

  1. 1Upgrade pyarrow to the version recommended for your connector: pip install 'snowflake-connector-python[pandas]'.
  2. 2Fall back to non-Arrow fetching: cursor.execute(query); result = cursor.fetchall() to rule out Arrow issues.
  3. 3If the issue is memory-related, fetch in batches: cursor.fetchmany(batch_size) instead of fetchall.
  4. 4Reduce result set size: add WHERE/LIMIT clauses or paginate large queries.
  5. 5Enable connector debug logging to see the raw Arrow stream error: logging.basicConfig(level=logging.DEBUG).

Frequently asked questions

Is fetch_pandas_all() faster than fetchall()?

Yes — Arrow-based fetching is significantly faster for large result sets. Use it for analytics workloads, but fall back to fetchall() when debugging Arrow-specific issues.

Can I disable Arrow fetching entirely?

Yes — set cursor_class=DictCursor or use the non-Arrow fetch methods. Arrow is opt-in through fetch_pandas_all() and fetch_arrow_all().

Official documentation: https://github.com/snowflakedb/snowflake-connector-python/blob/main/src/snowflake/connector/errorcode.py

Other execution errors