Snowflake Connector for Python release notes for 2025¶
This article contains the release notes for the Snowflake Connector for Python, including the following when applicable:
Behavior changes
New features
Customer-facing bug fixes
Snowflake uses semantic versioning for Snowflake Connector for Python updates.
See Snowflake Connector for Python for documentation.
Version 4.0.0 (Oct 9, 2025)¶
BCR (Behavior Change Release) changes¶
Configuration files writable by a group or others now raise a
ConfigSourceErrorwith detailed permission information, preventing potential credential tampering.Reverted changing the exception type in case of token expired scenario for
Oauthauthenticator back toDatabaseError.
New features and updates¶
Implemented a new CRL (Certificate Revocation List) checking mechanism.
Enabling CRLs improves security by checking for revoked certificates during the TLS handshake process. For more information, see the Replacing OCSP with CRL as the method of certificate revocation checking Knowledge Base article.
This feature is disabled by default. For information on enabling this feature, see CertRevocationCheckMode. We recommend you test this feature in advisory mode before enabling it in production.
Added the
workload_identity_impersonation_pathparameter to support service account impersonation for Workload Identity Federation. Impersonation is available only for Google Cloud and AWS workloads.Added the
oauth_credentials_in_bodyparameter to support sending OAuth client credentials in a connection request body.Added an option to exclude
botocoreandboto3dependencies during installation by setting theSNOWFLAKE_NO_BOTOenvironment variable totrue. For the full details, see Installing the Python Connector.Added the
ocsp_root_certs_dict_lock_timeoutconnection parameter to set the timeout (in seconds) for acquiring the lock on the OCSP root certs dictionary. The default value is -1, which represents no timeout.
Bug fixes¶
Fixed
get_results_from_sfqidwhen usingDictCursorand executing multiple statements at once.Fixed retry behavior for
ECONNRESETerrors.Fixed the return type of
SnowflakeConnection.cursor(cursor_class)to match the type ofcursor_class.Constrained the types of
fetchone,:code:fetchmany, andfetchall.Fixed the “No AWS region was found” error when AWS region was set in the
AWS_DEFAULT_REGIONvariable instead of inAWS_REGIONfor theWORKLOAD_IDENTITYauthenticator.
Version 3.18.0 (Oct 6, 2025)¶
New features and updates¶
Added support for pandas conversion for Day-time and Year-Month Interval types.
Bug fixes¶
None.
Version 3.17.4 (Sep 22, 2025)¶
New features and updates¶
Added support for allowing intermediate certificates from the trust store to act as root certificates.
Updated bundled
urllib3to version v2.5.0.Updated bundled
requeststo version v2.32.5.Dropped support for OpenSSL versions older than 1.1.1.
Bug fixes¶
None.
Version 3.17.3 (Sep 3, 2025)¶
New features and updates¶
None.
Bug fixes¶
Enhanced configuration file permission warning messages.
Improved warning messages for readable permission issues to include clear instructions on how to skip warnings using the
SF_SKIP_WARNING_FOR_READ_PERMISSIONS_ON_CONFIG_FILEenvironment variable.
Fixed the bug with staging pandas dataframes on AWS — the regional endpoint is used when required.
This fix addresses the issue with the
create_dataframecall on Snowpark.
Version 3.17.2 (August 20, 2025)¶
New features and updates¶
None.
Bug fixes¶
Added the ability to disable endpoint-based platform detection by setting
platform_detection_timeout_secondsto zero.Fixed a bug where
platform_detectionwas retrying failed requests with warnings to non-existent endpoints.
Version 3.17.1 (August 14, 2025)¶
New features and updates¶
Added the
infer_schemaparameter towrite_pandasto perform schema inference on the passed data.
Bug fixes¶
Reverted the
snowflakenamespace back to non-module.
Version 3.17.0 (August 13, 2025)¶
New features and updates¶
Added support for workload identity federation in the AWS, Azure, Google Cloud, and Kubernetes platforms.
Added the
workload_identity_providerconnection parameter.Added
WORKLOAD_IDENTITYto the values for theauthenticatorconnection parameter.
Added an
unsafe_skip_file_permissions_checkflag to skip file permission checks on the cache and configuration.Added basic JSON support for
Intervaltypes.Added populating of
type_codeinResultMetadatafor interval types.Relaxed the pyarrow version constraint; versions >= 19 can now be used.
Introduced the
snowflake_version propertyto the connection.Added support for the
use_vectorized_scannerparameter in thewrite_pandasfunction.Added support of proxy setup using connection parameters without emitting environment variables.
Bug fixes¶
Fixed OAuth authenticator values.
Fixed a bug where a PAT with an external session authenticator was used while
external_session_idwas not provided inSnowflakeRestful.fetch.Fixed the case-sensitivity of Oauth and
programmatic_access_tokenauthenticator values.Fixed unclear error messages for incorrect authenticator values.
Fixed GCS staging by ensuring the endpoint has a scheme.
Fixed a bug where time-zoned timestamps fetched as a
pandas.DataFrameorpyarrow.Tablewould overflow due to unnecessary precision. A clear error is now raised if an overflow cannot be prevented.
Version 3.16.0 (July 01, 2025)¶
New features and updates¶
Added the
client_fetch_use_mpconnection parameter that enables multi-processed fetching of result batches, which usually reduces fetching time.Added support for the new Personal Access Token (PAT) authentication mechanism with external session ID.
Added the
bulk_upload_chunksparameter to thewrite_pandasfunction. Setting this parameter toTruechanges the behavior of thewrite_pandasfunction to first write all the data chunks to the local disk and then perform the wildcard upload of the chunks folder to the stage. When set toFalse(default), the chunks are saved, uploaded, and deleted one by one.Added Windows support for Python 3.13.
Added basic arrow support for
Intervaltypes.Added support for Snowflake OAuth for local applications.
Bug fixes¶
Fixed
write_pandasspecial characters usage in the location name.Fixed the usage of
use_virtual_urlwhen building the location for a Google Cloud Storage (GCS) client.
Version 3.15.0 (April 28, 2025)¶
Private Preview (PrPr) features¶
Added support for workload identity federation in the AWS, Azure, GCP and Kubernetes platforms.
Disclaimer:
This feature can only be accessed by setting
SF_ENABLE_EXPERIMENTAL_AUTHENTICATIONenvironment variable totrue.You should use this feature only with non-production data.
This PrPr feature is not covered by Support. However, the Product and Engineering teams are available during the PrPr phase.
Please contact your account team for participation and documentation.
New features and updates¶
Added new authentication methods support for OAuth 2.0 Authorization Code Flow, OAuth 2.0 Client Credentials Flow, and OAuth Token caching.
For OAuth 2.0 Authorization Code Flow:
Added the
oauth_client_id,oauth_client_secret,oauth_authorization_url,oauth_token_request_url,oauth_redirect_uri,oauth_scope,oauth_disable_pkce,oauth_enable_refresh_tokensandoauth_enable_single_use_refresh_tokensparameters.Added the
OAUTH_AUTHORIZATION_CODEvalue for the parameter authenticator.
For OAuth 2.0 Client Credentials Flow:
Added the
oauth_client_id,oauth_client_secret,oauth_token_request_url, andoauth_scopeparameters.Added the
OAUTH_CLIENT_CREDENTIALSvalue for the parameter authenticator.
For OAuth Token caching: Passing a username to driver configuration is required, and the
client_store_temporary_credential propertyis to be set totrue.
Bug fixes¶
Increased the minimum required
botoandbotocoreversions to 1.24.Fixed an issue with OSCP by terminating a certificate’s chain traversal if a trusted certificate was already reached.
Version 3.14.1 (April 21, 2025)¶
Private Preview (PrPr) features¶
Added the
client_fetch_threadsexperimental parameter to better utilize threads for fetching query results.Added new experimental authentication methods:
OAuth authorization code and client credentials flows.
Workload Identity Federation for AWS, Azure, GCP and Kubernetes platforms.
Disclaimer:
These features can only be accessed by setting
SF_ENABLE_EXPERIMENTAL_AUTHENTICATIONenvironment variable totrue.You should use these features only with non-production data.
These PrPr features are not covered by Support. However, the Product and Engineering teams are available during the PrPr phase.
Please contact your account team for participation and documentation.
New features and updates¶
Added support for Python 3.13.
Note
Windows 64 support is still experimental and should not yet be used for production environments.
Dropped support for Python 3.8.
Added support for the basic decimal
floating-pointtype.Added support for providing a PAT in the
passwordfield.Added support for GCS regional endpoints.
Added support for GCS virtual URLs. For more information, see Request endpoints.
Added support to allow the connector to inherit a UUID4 generated upstream, provided in statement parameters (field:
requestId), rather than automatically generate a UUID4 to use for the HTTP Request ID.Improved logging in the urllib3, boto3, and botocore libraries to assure data masking even after a future migration to the external owned library.
Lowered log levels from
infotodebugfor some of the messages to make the output easier to follow.Improved security and robustness for the temporary credentials cache storage.
Deprecated the
insecure_modeconnection property and replaced it withdisable_ocsp_checkswith the same behavior as the former property.Implemented and improved the file-based credentials cache for Linux, including enhanced token caching.
Bug fixes¶
Improved the error message for client-side query cancellations due to timeouts.
Fixed a bug that caused the driver to fail silently on
TO_DATEarrow to python conversion when an invalid date was followed by the correct one.Added the
check_arrow_conversion_error_on_every_columnconnection property that can be set toFalseto restore previous behavior in which driver ignores errors until they occurs in the last column. This option lest you unblock workflows that might be impacted by the bug fix and will be removed in later releases.Fixed an issue with expired S3 credentials update and increment retry when expired credentials are found.
Version 3.14.0 (March 03, 2025)¶
New features and updates¶
Bumped the pyOpenSSL dependency upper boundary from <25.0.0 to <26.0.0.
Optimized distribution package lookup to improve import speed.
Added support for iceberg tables to
write_pandas.Added support for
Filetypes.
Bug fixes¶
Added a <19.0.0 pin to
pyarrowas a workaround to a bug affecting Azure Batch.Fixed a bug where the privatelink OCSP Cache url could not be determined if the privatelink account name was specified in uppercase.
Fixed base64 encoded private key tests.
Fixed a bug with file permission checks on Windows.
Added the
unsafe_file_writeconnection parameter that restores the previous behavior of saving files downloaded with GET with 644 permissions.
Version 3.13.2 (January 30, 2025)¶
New features and updates¶
The connector no longer uses scoped temporary objects.
Bug fixes¶
None.
Version 3.13.1 (January 29, 2025)¶
New features and updates¶
None.
Bug fixes¶
Hardened the
snowflake.connector.pandas_toolsmodule against SQL injection. For more information, see CVE-2025-24793.The local OCSP cache has been updated to use the json module instead of pickle to serialize its contents. For more information, see CVE-2025-24794.
The Linux credential cache file permissions have been updated explicitly to be only be owner readable. For more information, see CVE-2025-24795.
Updated the file permissions for files downloaded with GET to be readable only by the file owner.
Version 3.13.0 (January 23, 2025)¶
New features and updates¶
Added the
iobound_tpe_limitconnection parameter to limit the sizes of IO-boundThreadPoolExecutorsduring PUT and GET commands. By default, the size is calculated to the lesser of the number of files and the number of CPU cores.Added the
Connection.is_valid()method that verifies whether a connection is stable enough to receive queries.Updated the log level for cursor’s chunk
rowcountfrom INFO to DEBUG.Added support for base64-encoded DER private key strings in the
private_keyauthentication type.Updated
README.mdto include instructions on how to verify package signatures usingcosign.
Bug fixes¶
None.