Failed to import ArrowResult. No Apache Arrow result set format can be used (snowflake-connector-python)
Fixes the Snowflake connector warning when its Arrow iterator native module fails to load. Use when 'Failed to import ArrowResult' appears after upgrading the connector. Not for query or connection errors.
TL;DR: snowflake-connector-python 3.17.0 shipped a broken native Arrow iterator module. Upgrade to 3.17.1 or newer and the warning goes away; result fetching falls back to normal.
WARNING:snowflake.connector.cursor:Failed to import ArrowResult. No Apache Arrow result set format can be used. ImportError: DLL load failed while importing nanoarrow_arrow_iterator: The specified module could not be found.Fix it
- Check the version: pip show snowflake-connector-python. Expected: 3.17.0 if you hit this.
- Upgrade: pip install -U "snowflake-connector-python>=3.17.1". Expected: Successfully installed snowflake-connector-python-3.17.1 (or newer).
- Verify: run a query with cursor.execute("SELECT 1") and fetch. Expected: no ArrowResult warning in the logs.
- Pin the working version in requirements so a fresh install does not land back on 3.17.0.
When this applies
- The ArrowResult warning appears right after upgrading to 3.17.0, on any OS.
When it doesn't
- You see "incompatible version of pyarrow" instead: that is the separate pyarrow pin warning, fixed by installing a compatible pyarrow.
- Queries fail for other reasons: this warning only affects the Arrow result format, not connectivity.
Compatibility
- snowflake-connector-python >= 3.17.1. Python 3.8+.
Why it happens
The 3.17.0 release packaged a nanoarrow iterator extension that failed to load on some setups, so the connector logged the warning and fell back from the Arrow result format. The 3.17.1 patch fixed the packaging.
Edge cases
- The warning is non-fatal: queries still run, just without Arrow acceleration, so a noisy log is the main symptom.
- If the upgrade is blocked, the warning can be ignored short-term; functionality is unaffected.
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.