AWSCloudWatchProvider fails to log to a brand-new log stream
See original GitHub issueBefore opening, please confirm:
- I have searched for duplicate or closed issues and discussions.
- I have read the guide for submitting bug reports.
- I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
JavaScript Framework
React
Amplify APIs
Not applicable
Amplify Categories
Not applicable
Environment information
Put output below this line
System: OS: Linux 5.10 Ubuntu 20.04.3 LTS (Focal Fossa) CPU: (12) x64 Intel® Core™ i7-10750H CPU @ 2.60GHz Memory: 9.66 GB / 12.33 GB Container: Yes Shell: 5.0.17 - /bin/bash Binaries: Node: 14.17.5 - /usr/bin/node Yarn: 1.22.11 - /mnt/c/Users/iblis/AppData/Roaming/npm/yarn npm: 6.14.14 - /usr/bin/npm npmGlobalPackages: aws-cdk: 1.122.0 npm: 6.14.14
Describe the bug
AWSCloudWatchProvider (packages/core/src/Providers/AWSCloudWatchProvider.ts
) throws the following errors when sending logs to a brand new stream.
API Response
{"__type":"InvalidParameterException","message":"1 validation error detected: Value '' at 'sequenceToken' failed to satisfy constraint: Member must have length greater than or equal to 1"}
When I call the CloudWatch API directly without a token to initialize the first stream message, the provider works.
Expected behavior
AWSCloudWatchProvider
shouldn’t be initializing _nextSequenceToken
to empty string. The value should be undefined.
Original Line: 379
this._nextSequenceToken = logStream.uploadSequenceToken || '';
Requested Changes:
this._nextSequenceToken = logStream.uploadSequenceToken || undefined;
Reproduction steps
- Create a new aws-amplify logger
- Add Pluggable:
AWSCloudWatchProvider
with a non-existing stream name - Attempt to log an entry
Code Snippet
const logger = new Logger('test', 'DEBUG);
logger.addPluggable(
new AWSCloudWatchProvider({
logGroupName: `/app/dev`,
logStreamName: 'brand-new-stream',
region: 'us-east-2`,
})
);
logger.debug('hello');
Log output
Log Output
31:07.130 AWSCloudWatch - failure during log push: InvalidParameterException: 1 validation error detected: Value '' at 'sequenceToken' failed to satisfy constraint: Member must have length greater than or equal to 1
31:07.130 AWSCloudWatch - error during _safeUploadLogEvents: TypeError: Cannot read properties of undefined (reading 'nextSequenceToken')
[ERROR] 31:07.130 AWSCloudWatch - error when calling _safeUploadLogEvents in the timer interval - TypeError: Cannot read properties of undefined (reading 'nextSequenceToken')
aws-exports.js
No response
Manual configuration
No response
Additional configuration
No response
Mobile Device
No response
Mobile Operating System
No response
Mobile Browser
No response
Mobile Browser Version
No response
Additional information and screenshots
No response
Issue Analytics
- State:
- Created 2 years ago
- Comments:8 (6 by maintainers)
I have merged in #9181. Thank you @aaronlna. It is now in
aws-amplify@unstable
and should be released in@latest
thursday during our weekly release cycle. Could you verify by upgrading tounstable
and let us know if there are any issues?This issue has been automatically locked since there hasn’t been any recent activity after it was closed. Please open a new issue for related bugs.
Looking for a help forum? We recommend joining the Amplify Community Discord server
*-help
channels or Discussions for those types of questions.