Skip to content

run-ecs: ArtillerySQSPlugin.sendSQS: Message must be shorter than 1048576 bytes #3683

@flah00

Description

@flah00

Version info:

2.0.27

Running this command:

artillery run-ecs \
--task-role-name artilleryio-ecs-worker-role \
--count 1 \
--cpu 4 \
--memory 8 \
--environment ci \
--subnet-ids ... \
--security-group-ids ... \
--tags service:artilleryio,version:2.0.27,env:dev,ref:...,config:...,repo:... \
--dotenv dotenv \
--output report.json

I expected to see this happen:

Artillery to complete its run

Instead, this happened:

Artillery exits at some point during the scenario (different payload each time). An artillery report is generated, not all of the payloads have been POSTed. And the artillery worker log includes:

message: 'One or more parameters are invalid. Reason: Message must be shorter than 1048576 bytes.'
Type: 'Sender',
Code: 'InvalidParameterValue',
Error: {
Type: 'Sender',
Code: 'InvalidParameterValue',
__type: 'com.amazon.coral.service#InvalidParameterValueException',
},
totalRetryDelay: 0
attempts: 1,
cfId: undefined,
extendedRequestId: undefined,
requestId: '7cef4703-e280-5d7f-881c-26db2d934080',
httpStatusCode: 400,
'$metadata': {
'$retryable': undefined,
'$fault': 'client',
at async ArtillerySQSPlugin.sendSQS (/artillery/packages/artillery/lib/platform/aws-ecs/legacy/plugins/artillery-plugin-sqs-reporter/index.js:141:5) {
at async /artillery/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js:5:26
at async /artillery/node_modules/@aws-sdk/middleware-sdk-sqs/dist-cjs/index.js:88:18
at async /artillery/node_modules/@smithy/middleware-retry/dist-cjs/index.js:254:46
at async /artillery/node_modules/@smithy/core/dist-cjs/index.js:121:20
at async /artillery/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js:26:24
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at AwsJson1_0Protocol.deserializeResponse (/artillery/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js:467:24)
at AwsJson1_0Protocol.handleError (/artillery/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js:640:65)
at ProtocolLib.getErrorSchemaOrThrowBaseException (/artillery/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js:69:67)
InvalidParameterValue: One or more parameters are invalid. Reason: Message must be shorter than 1048576 bytes.
Finished with code 0
no ensure spec
Completed 1.0 MiB/2.4 MiB (14.4 MiB/s) with 1 file(s) remaining Completed 2.0 MiB/2.4 MiB (26.1 MiB/s) with 1 file(s) remaining Completed 2.4 MiB/2.4 MiB (29.3 MiB/s) with 1 file(s) remaining upload: ./output.txt to s3://.../test-runs/t873x_w4h4fzzjc3jxrhy3yw7bbz4bbxj65_f5yt/worker-log-c8f5bdd2ccd54342adcf9943f3a88420.txt
EXIT
cleanup called, signal:
log: s3://.../test-runs/t873x_w4h4fzzjc3jxrhy3yw7bbz4bbxj65_f5yt/worker-log-c8f5bdd2ccd54342adcf9943f3a88420.txt
Message body: {"event": "workerDone"}

Files being used:

config:
  environments:
    ci:
      target: https://...
    local:
      target: http://localhost:8080
  includeFiles: []
  payload:
  - fields:
    - sample_file
    - json_body
    loadAll: true
    name: json_bodies
    path: payload.csv
  plugins:
    metrics-by-endpoint:
      groupDynamicURLs: false
      useOnlyRequestNames: true
    publish-metrics:
    - apiKey: '{{ $env.DATADOG_API_KEY }}'
      appKey: '{{ $env.DATADOG_APP_KEY }}'
      event:
        priority: normal
        tags: []
        title: Plugin integration test
      tags: []
      type: datadog
scenarios:
- flow:
  - loop:
    - post:
        body: '{{ $loopElement.json_body }}'
        headers:
          Content-Type: application/json
        name: '{{ $loopElement.sample_file }}'
        url: ...
    over: json_bodies
  name: this thing

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions