New IoT Bridge for Snowflake Available

This document covers v2.0.0 and older versions of IoT Bridge for Snowflake. It now ships as part of Chariot. To see the latest IoT Bridge for Snowflake documentation, go to IoT Bridge for Snowflake in Chariot.


Failed to load the private key based on <PRIVATE KEY>

This error generated by the com.cirruslink.ingest.snowflake.StreamingIngest logger indicates that the private/public key pair for snowflake connection is encrypted.

The key pair must be unencrypted 

You will also see a stack trace similar to the one below:

INFO|174123/0||23-06-15 14:20:36|java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : DER input, Integer tag error 
INFO|174123/0||23-06-15 14:20:36| at java.base/sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:251) 
INFO|174123/0||23-06-15 14:20:36| at java.base/java.security.KeyFactory.generatePrivate(KeyFactory.java:390) 
INFO|174123/0||23-06-15 14:20:36| at net.snowflake.ingest.internal.apache.kerby.kerberos.kerb.common.PrivateKeyReader.loadPrivateKey(PrivateKeyReader.java:62) 
INFO|174123/0||23-06-15 14:20:36| at com.cirruslink.iotbridge.snowflake.StreamingIngest.<init>(StreamingIngest.java:77) 
INFO|174123/0||23-06-15 14:20:36| at com.cirruslink.iotbridge.snowflake.SnowflakeHostApplication.<init>(SnowflakeHostApplication.java:82) 
INFO|174123/0||23-06-15 14:20:36| at com.cirruslink.iotbridge.snowflake.SnowflakeIotBridge.<init>(SnowflakeIotBridge.java:34) 
INFO|174123/0||23-06-15 14:20:36| at com.cirruslink.iotbridge.snowflake.SnowflakeIotBridge.main(SnowflakeIotBridge.java:21) 
INFO|174123/0||23-06-15 14:20:36| at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
INFO|174123/0||23-06-15 14:20:36| at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
INFO|174123/0||23-06-15 14:20:36| at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
INFO|174123/0||23-06-15 14:20:36| at java.base/java.lang.reflect.Method.invoke(Method.java:566) 
INFO|174123/0||23-06-15 14:20:36| at org.rzo.yajsw.app.WrapperJVMMain.executeMain(WrapperJVMMain.java:60) 
INFO|174123/0||23-06-15 14:20:36| at org.rzo.yajsw.app.WrapperJVMMain.main(WrapperJVMMain.java:43) 
INFO|174123/0||23-06-15 14:20:36|Caused by: java.security.InvalidKeyException: IOException : DER input, Integer tag error 
INFO|174123/0||23-06-15 14:20:36| at java.base/sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:350) 
INFO|174123/0||23-06-15 14:20:36| at java.base/sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:355) 
INFO|174123/0||23-06-15 14:20:36| at java.base/sun.security.rsa.RSAPrivateCrtKeyImpl.<init>(RSAPrivateCrtKeyImpl.java:136) 
INFO|174123/0||23-06-15 14:20:36| at java.base/sun.security.rsa.RSAPrivateCrtKeyImpl.newKey(RSAPrivateCrtKeyImpl.java:80) 
INFO|174123/0||23-06-15 14:20:36| at java.base/sun.security.rsa.RSAKeyFactory.generatePrivate(RSAKeyFactory.java:356) 
INFO|174123/0||23-06-15 14:20:36| at java.base/sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:247) 
INFO|174123/0||23-06-15 14:20:36| ... 12 common frames omitted 
INFO|174123/0||23-06-15 14:20:36|14:20:36.004 [main] ERROR c.c.i.snowflake.StreamingIngest - Failed to load the private key based on <PRIVATE_KEY>

400 Bad Request

This 400 Bad Request is returned from the Snowflake Streaming endpoint when using the URL configured in your snowflake_streaming_profile.json configuration.

This can be caused by a number of configuration errors:

  1. The URL is incorrect or malformed
  2. The user and role are mismatched or incorrect
     
INFO|69731/0||24-04-04 20:48:33|20:48:33.243 [main] INFO  n.s.i.connection.SecurityManager - Successfully created new JWT
INFO|69731/0||24-04-04 20:48:33|20:48:33.245 [main] INFO  n.s.ingest.connection.RequestBuilder - Creating a RequestBuilder with arguments : Account : FU08711, User : IBSNOW_INGEST, Scheme : https, Host : fu08711.east-us-2.azure.snowflakecomputing.com, Port : 443, userAgentSuffix: null
INFO|69731/0||24-04-04 20:48:33|20:48:33.245 [main] INFO  n.s.i.s.i.SnowflakeStreamingIngestClientInternal - [SF_INGEST] Using KEYPAIR_JWT for authorization
INFO|69731/0||24-04-04 20:48:33|20:48:33.261 [main] INFO  n.s.i.s.i.StreamingIngestStage - [SF_INGEST] Refresh Snowflake metadata, client=IBSNOWClient
INFO|69731/0||24-04-04 20:48:33|20:48:33.780 [main] WARN  n.s.i.c.ServiceResponseHandler - 400 Status hit from STREAMING_CLIENT_CONFIGURE, requestId:
INFO|69731/0||24-04-04 20:48:33|20:48:33.862 [main] ERROR c.c.i.snowflake.StreamingIngest - Failed to open the channel for IBSNOW_BridgeInfo
INFO|69731/0||24-04-04 20:48:33|20:48:33.864 [main] ERROR c.c.i.snowflake.StreamingIngest - Failed to insert on topic 'spBv1.0/IBSNOW/NBIRTH/Bridge Info'
INFO|69731/0||24-04-04 20:48:33|java.lang.NullPointerException: null
INFO|69731/0||24-04-04 20:48:33|        at com.cirruslink.iotbridge.snowflake.StreamingIngest.insert(StreamingIngest.java:136)
  • No labels