My AWS Lambda-based Node.js application occasionally generates an error similar to the following when connecting to an Amazon DynamoDB table:

Error { [NetworkingError: write EPROTO]
cause:
{ [NetworkingError: write EPROTO]
message: 'write EPROTO',
code: 'NetworkingError',
errno: 'EPROTO',
syscall: 'write',
address: undefined,
region: 'us-east-1',
hostname: 'dynamodb.us-east-1.amazonaws.com',
retryable: true,
time: Mon July 11 2016 06:08:49 GMT+0000 (UTC) }

This error can occur if your Lambda-based Node.js application is using AWS Lambda version 4.3 with Node.js version 4.3.

A Lambda-based Node.js version 4.3 application connection to a TLS 1.2 server cannot be stored and subsequently reused when connecting to a TLS 1.0 server. This issue can affect Lambda functions which use the Node.js 4.3 runtime.

Complete the following step to resolve this issue:

Specify a secureProtocol: parameter of TLSv1_method for the DynamoDB client httpOptions:

var dynamodb = new AWS.DynamoDB({
    httpOptions: {
        agent: new https.Agent({
            secureProtocol: "TLSv1_method",
            ciphers: "ALL"})
}})

Did this page help you? Yes | No

Back to the AWS Support Knowledge Center

Need help? Visit the AWS Support Center

Published: 2016-08-03

Updated: 2017-07-03