Announcing the LocalStack for Snowflake 2026.05.0 Release
LocalStack for Snowflake 2026.05.0 updates Docker image tags, improves SQL function and expression parity, handles multi-statement SQL comments more reliably, and improves Snowpipe loading behavior.
Introduction
LocalStack for Snowflake 2026.05.0 is now available. This release updates SQL translation behavior, Snowflake-compatible error responses, multi-statement query handling, and Snowpipe processing. It also updates the published Docker image tags to follow the same dev, nightly, and latest behavior used across the LocalStack image set.
These changes affect migration suites and client workflows that use QUALIFY with SELECT *, UNION queries through CTEs, variant access inside distinct aggregates, SQL UDF and procedure bodies, and commented multi-statement SQL requests.
In addition, the published Docker image tags have been reorganized:
- The new
devtag includes all untagged changes on themainbranch of the Snowflake repository. - The new
nightlytag is pushed from scheduled nightly runs. - The
latesttag now replicates thestabletag, meaning it is pushed only from tagged releases (for example,2026.05.0,2026.05.1).
If you previously pinned to latest to follow the current development build, switch to dev or use nightly for the scheduled build.
Get a free LocalStack trial to access the latest fixes in LocalStack for Snowflake 2026.05.0.
How to upgrade?
To upgrade to LocalStack for Snowflake 2026.05.0 using the LocalStack CLI, run:
docker pull localstack/snowflake:2026.05.0localstack start --stack snowflakeIf you’re using the lstk CLI, the first run prompts you to select a default emulator. You can select and run the Snowflake emulator from that flow as well.
If you’re using LocalStack for Snowflake with Docker CLI or Docker Compose, you can pin the image version in your docker run command or Docker Compose file to 2026.05.0.
What’s new in LocalStack for Snowflake 2026.05.0?
- Docker image tag updates
- SQL function and expression compatibility updates
- Improved parity with Snowflake
- Snowpipe processing improvements
- Multi-statement SQL fixes
- Miscellaneous
- Conclusion
Docker image tag updates
LocalStack for Snowflake now follows the updated Docker image tag policy used by the wider LocalStack release process:
| Tag | Notes |
|---|---|
2026.05.0 | Fixed release tag for this version. Use this when you need reproducible builds. |
stable | Tracks the latest tagged release. |
latest | Now mirrors stable; it no longer tracks untagged changes from main. |
dev | Tracks untagged changes from main. Use this if you previously used latest for development builds. |
nightly | Tracks the scheduled nightly build. |
This change mostly affects Docker and Docker Compose users who were relying on localstack/snowflake:latest to pick up changes before a release. Those workflows should move to localstack/snowflake:dev or localstack/snowflake:nightly.
SQL function and expression compatibility updates
LocalStack for Snowflake 2026.05.0 includes several fixes around SQL functions, aggregate expressions, and window functions. These changes reduce the number of cases where valid Snowflake SQL failed locally due to type coercion, expression rewriting, or PostgreSQL-specific behavior leaking through the emulation layer.
| Function or expression | Notes |
|---|---|
| TRY_CAST | TRY_CAST(<array> AS ARRAY) now returns the array value instead of rejecting ARRAY as an unsupported target type. |
| MIN / MAX | MIN and MAX now preserve typed NUMBER(p,s) values, so aggregates over decimal columns no longer fail or round-trip through floating-point values. |
| ARRAY_AGG | ARRAY_AGG(DISTINCT ...) now works with variant path expressions such as f.value:"key"::STRING, matching Snowflake behavior for semi-structured data aggregation. |
| COUNT | COUNT(DISTINCT CASE WHEN ... THEN ... END) now preserves literals inside nested CASE predicates, avoiding invalid translated SQL for conditional distinct counts. |
| LAG / LEAD | Window functions now preserve qualified column references in ORDER BY, so joins with duplicated column names no longer raise false ambiguity errors. |
| ILIKE / LIKE | Pattern matching now works more reliably on values coming from LATERAL FLATTEN, including comparisons between VARIANT-derived values and strings. |
Improved parity with Snowflake
We have made several enhancements to LocalStack for Snowflake to improve compatibility with the Snowflake service. These include:
QUALIFYqueries that combineSELECT *with aliased expressions inside a CTE now execute without creating duplicate projected columns. This fixes false ambiguous-column errors for common “pick the latest row” query patterns.UNIONandUNION ALLqueries now coerce aliasedNULLvalues projected through CTEs more like Snowflake. Queries that combineNULLfrom one branch withVARCHARvalues from another branch no longer require explicit casts.- SQL UDF and procedure bodies that begin with a CTE, set operation, or
BEGIN ... ENDblock are no longer prefixed with an invalidSELECTduring translation. This improves compatibility for migration scripts and applications that create SQL functions or procedures through the Snowflake connector. - Invalid
GROUP BYprojections now return a Snowflake-style compilation error instead of exposing the raw PostgreSQL error shape. This improves client behavior for tools that depend on Snowflake error codes and SQL states. - Compilation failures now return more Snowflake-compatible responses in cases where the underlying PostgreSQL error would previously leak through to the client.
Snowpipe processing improvements
Snowpipe notification processing now schedules COPY INTO work per pipe instead of running all work on the SQS polling thread. This keeps message polling responsive while allowing different pipes to load files concurrently.
Ordering is still preserved within a single pipe by using a single-worker executor per pipe. The runner also tracks in-flight work, so the same file is not scheduled again while it is still being loaded.
Multi-statement SQL fixes
Multi-statement query requests also handle SQL comments more reliably. Valid statements with line comments, block comments, or inline comments are no longer skipped during statement splitting, and comments are stripped before the individual statements are sent through the query pipeline.
This makes setup scripts and migration batches more predictable when they include comments between or alongside executable statements.
Miscellaneous
- Error responses for invalid SQL now avoid leaking raw PostgreSQL internals in additional cases, improving compatibility with the Snowflake Python connector, the .NET driver, and test suites that assert Snowflake-style failures.
- Compilation failures involving quoted identifiers and aliases now return cleaner Snowflake-style responses instead of raw backend errors.
Conclusion
LocalStack for Snowflake 2026.05.0 improves SQL parity, Docker image tagging, multi-statement query handling, and Snowpipe loading. Existing migration suites should see fewer false failures around CTEs, aggregates, window functions, SQL procedure bodies, and connector-facing error responses.
Sign up for a free trial or upgrade to LocalStack for Snowflake 2026.05.0 to use these fixes in your local development environment.