diff --git a/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java b/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java index 2db7361e3a..daf1246df6 100644 --- a/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java +++ b/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java @@ -309,6 +309,16 @@ private String determineEndpoint() throws IOException { /** Determine if S2A can be used */ @VisibleForTesting boolean shouldUseS2A() { + // If running on windows or macos intel, skip S2A. S2A has runtime + // dependency on netty-tcnative which is dropping support on these platforms. + // https://github.com/netty/netty-tcnative/issues/898 + // https://github.com/netty/netty-tcnative/issues/897 + if (System.getProperty("os.name").contains("Windows") + || (System.getProperty("os.name").contains("OS X") + && System.getProperty("os.arch").contains("x86_64"))) { + return false; + } + // If mTLS endpoint is not available, skip S2A if (Strings.isNullOrEmpty(mtlsEndpoint())) { return false;