jest-dynamodb icon indicating copy to clipboard operation
jest-dynamodb copied to clipboard

UnrecognizedClientException

Open skilbjo opened this issue 1 year ago • 7 comments

Have been using @shelf/jest-dynamodb for 2 yrs and just started getting this error in github actions (not locally)

    UnrecognizedClientException: The Access Key ID or security token is invalid.

      at Request.extractError (node_modules/aws-sdk/lib/protocol/json.js:52:27)
      at Request.callListeners (node_modules/aws-sdk/lib/sequential_executor.js:106:20)
      at Request.emit (node_modules/aws-sdk/lib/sequential_executor.js:78:10)
      at Request.emit (node_modules/aws-sdk/lib/request.js:686:14)
      at Request.transition (node_modules/aws-sdk/lib/request.js:22:10)
      at AcceptorStateMachine.runTo (node_modules/aws-sdk/lib/state_machine.js:14:12)
      at node_modules/aws-sdk/lib/state_machine.js:26:10
      at Request.<anonymous> (node_modules/aws-sdk/lib/request.js:38:9)
      at Request.<anonymous> (node_modules/aws-sdk/lib/request.js:688:12)
      at Request.callListeners (node_modules/aws-sdk/lib/sequential_executor.js:116:18)
      at Request.emit (node_modules/aws-sdk/lib/sequential_executor.js:78:10)
      at Request.emit (node_modules/aws-sdk/lib/request.js:686:14)
      at Request.transition (node_modules/aws-sdk/lib/request.js:22:10)
      at AcceptorStateMachine.runTo (node_modules/aws-sdk/lib/state_machine.js:14:12)
      at node_modules/aws-sdk/lib/state_machine.js:26:10
      at Request.<anonymous> (node_modules/aws-sdk/lib/request.js:38:9)
      at Request.<anonymous> (node_modules/aws-sdk/lib/request.js:688:12)
      at Request.callListeners (node_modules/aws-sdk/lib/sequential_executor.js:116:18)
      at callNextListener (node_modules/aws-sdk/lib/sequential_executor.js:96:12)
      at IncomingMessage.onEnd (node_modules/aws-sdk/lib/event_listeners.js:335:13)

package.json

...
    "@shelf/jest-dynamodb": "3.4.1",
    "aws-sdk": "2.1046.0",
...

test/file.test.ts

  const localClient = new AWS.DynamoDB({
    credentials: {
      accessKeyId: 'fake-access-key',
      secretAccessKey: 'fake-secret-access-key',
    },
    endpoint,
    region: 'local',
    sslEnabled: false,
  });
...

src/file.ts

...
  dynamo
    .putItem(<AWS.DynamoDB.PutItemInput>{
      ...(!overwrite && { ConditionExpression: 'attribute_not_exists(PK)' }), // if overwrite is true, the ConditionExpression is omitted
      Item: item,
      TableName: tableName,
    })
    .promise();
...

github actions:

jobs:
  publish-artifact:
    permissions:
      issues: write
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - uses: actions/checkout@v3
        with:
          token: ${{ secrets.ACTIONS_TOKEN }}
          persist-credentials: false
      - uses: actions/setup-node@v3
        with:
          node-version: 16 

...

skilbjo avatar Jul 03 '23 14:07 skilbjo