JDBC Driver release notes for 2026¶
This article contains the release notes for the JDBC Driver, including the following when applicable:
- Behavior changes
- New features
- Customer-facing bug fixes
Snowflake uses semantic versioning for JDBC Driver updates.
See JDBC Driver for documentation.
Version 4.2.0 (May 06, 2026)¶
New features and updates¶
- Added support for attaching the SPCS service-identifier token (SPCS_TOKEN) to login requests when running inside an SPCS container.
- Extended
SKIP_TOKEN_FILE_PERMISSIONS_VERIFICATIONto bypass permission checks onconnections.tomland the credential cache file, unblocking SPCS environments where strict 0600/0700 ownership can’t be guaranteed. - Added IPv6 support for cloud metadata services so Workload Identity Federation and platform detection work on IPv6-only instances.
- Added the
enableCopyResultSetconnection property to expose the COPY INTO per-file metadata result set viagetResultSet(). - Added the
workloadIdentityAwsExternalIdconnection property to support AWS STS external ID in Workload Identity Federation role-chaining flows. - Updated BouncyCastle to 1.84 to address CVE-2026-0636 (https://nvd.nist.gov/vuln/detail/CVE-2026-0636), CVE-2026-5588 (https://nvd.nist.gov/vuln/detail/CVE-2026-5588), and CVE-2026-5598 (https://nvd.nist.gov/vuln/detail/CVE-2026-5598).
- Updated grpc-java to 1.81.1 and Netty to 4.1.133.Final to address several CVEs.
Bug fixes¶
- Fixed
connections.tomlauto-configuration to default to port 443 instead of 80, and to no longer ignore configuration from the JDBC connection string when auto-configuration values are also present. - Fixed the
protocolfield inconnections.tomlbeing ignored, which caused connections to always use HTTPS. - Fixed a
NullPointerExceptionduring file transfer (for example, PUT) caused by a missing URI scheme onendpointOverride. - Fixed a
NullPointerExceptionin OCSP revocation checks when the cache contained a non-successful response, so cache eviction and fail-open behavior now run correctly. - Fixed a
NullPointerExceptionin HTTP error telemetry when the session URL was not yet set, so the original HTTP error is now surfaced to the caller. - Fixed a
SecurityExceptionon the credential cache file ownership check in containers where the JVM returns?foruser.name. - Fixed credential cache delete operations ignoring the
clientStoreTemporaryCredential=falsesetting. - Fixed an S3 transfer thread pool leak during repeated PUT/GET operations that could cause OOM.
Version 4.1.0 (Apr 08, 2026)¶
New features and updates¶
- Added warning when using plain HTTP endpoints for OAuth authentication.
- Added
getRole,getWarehouse, andgetDatabaseAPI extension methods. - Removed the
io.netty.tryReflectionSetAccessiblesystem property setting, as it is no longer needed with modern Arrow/Netty versions.
Bug fixes¶
- Fixed
ObjectMapperinitialization whenDATE_OUTPUT_FORMATis specified. - Fixed Netty native library conflict in thin JAR packaging.
- Bumped Netty to 4.1.132.Final to address CVE-2026-33870 (https://nvd.nist.gov/vuln/detail/CVE-2026-33870) and CVE-2026-33871 (https://nvd.nist.gov/vuln/detail/CVE-2026-33871).
- Fixed driver failure when a security manager prohibits access to system properties, environment variables, or security provider modifications.
- Fixed crash in
getColumnswhen a table contained an unrecognized column type. - Fixed session expiration when multiple sessions have different heartbeat intervals.
- Fixed query context not being merged from failed query responses.
Version 4.0.2 (Mar 12, 2026)¶
New features and updates¶
- Bumped the
commons-compressdependency to version 1.28.0 to address CVE-2024-25710 (https://nvd.nist.gov/vuln/detail/CVE-2024-25710) and CVE-2024-26308 (https://nvd.nist.gov/vuln/detail/CVE-2024-26308).
Bug fixes¶
- Fixed expired session token renewal when polling results.
- Fixed missing minicore async initialization that was dropped during public API restructuring in v4.0.0.
- Adjusted the level of logging during driver initialization.
- Added sanitization for
nonProxyHostsregex patterns. - Fixed a bug with a malformed file during S3 upload.
- Added periodic closure of sockets closed by the remote end.
- Restored the S3 client’s multipart threshold to 16 MB.
- Fixed the fat jar with S3 iteration where the
software.amazon.awssdk.transfer.s3.internal.ApplyUserAgentInterceptorclass could not be found. - Removed Conscrypt from shading to prevent a
failed to find class org/conscrypt/CryptoUpcallsnative error. - Fixed a
NullPointerExceptionwhen the HOME directory cache is not available. - Fixed proxy authentication when connecting to GCP.
- Fixed a bug where a caller-provided schema was ignored in
getStreams(). - Fixed S3 error handling that manifested with a
NullPointerException.
Version 4.0.1 (Feb 09, 2026)¶
New features and updates¶
- None.
Bug fixes¶
- Fixed incorrect encryption algorithm selection when uploading a file to S3 with the
client_encryption_key_sizeaccount parameter set to 256. - Fixed a
software.amazon.awssdk.transfer.s3.internal.ApplyUserAgentInterceptorclass could not be found issue in the fat jar. - Removed Conscrypt from shading to prevent a native error when the
org/conscrypt/CryptoUpcallsclass could not be found. - Fixed external browser authentication after an enum name change that caused an “Invalid connection URL: Invalid SSOUrl found” error.
- Rolled back the external browser authenticator name to
externalbrowser. - Updated BouncyCastle dependencies to address CVE-2025-8916 (https://nvd.nist.gov/vuln/detail/CVE-2025-8916) and CVE-2025-8885 (https://nvd.nist.gov/vuln/detail/CVE-2025-8885).
Version 4.0.0 (Jan 27, 2026)¶
Important
Due to some underlying issues, Snowflake recommends that AWS and Azure customers do not upgrade to this version if you use PUT or GET queries. Instead, Snowflake recommends that you upgrade directly to version 4.0.1. If you have already upgraded to this version, please upgrade to version 4.0.1 as soon as possible.
BCR (Behavior Change Release) changes¶
-
The public API was restructured, and all public APIs were moved to the
net.snowflake.client.api.*package hierarchy:- Deprecated
net.snowflake.client.jdbc.SnowflakeDriver. You should now usenet.snowflake.client.api.driver.SnowflakeDriverinstead. - Added a unified
QueryStatusclass in public API that replaces the deprecatedQueryStatusenum andQueryStatusV2class. - Added new
DownloadStreamConfigandUploadStreamConfigpublic API interfaces for stream upload/download configuration. - Added
SnowflakeDatabaseMetaDatainterface to public API for database metadata operations. - Added
SnowflakeAsyncResultSetinterface to public API for async query operations. - Added
SnowflakeResultSetSerializableinterface to public API. - Moved internal classes to
net.snowflake.client.internal.*package hierarchy.
For more information, see Migrating from JDBC Driver 3.x to JDBC Driver 4.x.
- Deprecated
-
Renamed BouncyCastle JVM property from
net.snowflake.jdbc.enableBouncyCastletonet.snowflake.jdbc.useBundledBouncyCastleForPrivateKeyDecryption. -
Removed previously deprecated classes and methods:
- Removed the deprecated
com.snowflake.client.jdbc.SnowflakeDriverclass. - Removed the deprecated
QueryStatusenum from thenet.snowflake.client.corepackage. - Removed the deprecated
QueryStatusV2class from thenet.snowflake.client.jdbcpackage. - Removed the deprecated
SnowflakeTypeenum from thenet.snowflake.client.jdbcpackage.
- Removed the deprecated
New features and updates¶
- Migrated from AWS SDK v1 to AWS SDK v2 for improved performance and modern API support.
- Upgraded Azure Storage SDK from version 5 to version 12.
- Upgraded nimbus-jose-jwt OAuth2 dependency to version 11.30.1.
- Bumped netty to version 4.1.130.Final to address CVE-2025-67735 (https://nvd.nist.gov/vuln/detail/CVE-2025-67735).
Bug fixes¶
- Fixed the
column_sizevalue in database metadata commands to match the JDBC specification. - Fixed a
NullPointerExceptionwhen in-band telemetry is sent without an HTTP response.