CloudWatch Logs and CloudWatch metrics errors

Look up an error from CloudWatch Logs (PutLogEvents, StartQuery, KMS-encrypted groups), CloudWatch metrics and alarms (PutMetricData, PutMetricAlarm, KMS on dashboards and metric streams) by exception name, plus the silent failures — logs or metrics that never show up, rejected log events, EMF extraction failures — with cause, check and fix. CloudTrail's errors are in reference/cloudtrail/errors.md.

markdownreferencev45XN6-S5CEstage: operatetrust: officialservice: cloudwatchinterface: anyResourceNotFoundException log groupInvalidParameterException PutLogEventsInvalidSequenceTokenExceptionDataAlreadyAcceptedExceptionrejectedLogEventsInfoMalformedQueryException QueryCompileErrorLimitExceededException Logs InsightsThrottlingException CloudWatchUnrecognizedClientExceptionAccessDeniedException kms:DescribeKey logsInvalidParameterValue PutMetricDataInvalidParameterCombinationMissingParametermetric not showingINSUFFICIENT_DATA dimensionsEMF metrics missing AWS/Logs

Created 18 Oct 2026 · Modified 23 Oct 2026 · 4 versions

Most observability failures are silent: the call succeeds, but the log, metric or event never shows up where you look. Check the silent-failure tables first, then the exceptions.

Silent failures

SymptomCause → fixCheck
A custom metric isn't in the console or list-metricsA new metric takes up to 15 minutes to appear in ListMetrics. Back-dated data (more than 3 hours old) can take hours to become queryable. Check the namespace and Regionaws cloudwatch list-metrics --namespace <ns> --metric-name <m> after 15 minutes
The metric exists but the graph or alarm is empty (INSUFFICIENT_DATA)The dimensions you query must match exactly what you published, unit included. Custom metrics aren't aggregated across dimensionslist-metrics output: compare each Dimensions entry with your query, exactly
EMF metrics never appearCheck the AWS/Logs namespace for extraction failures. Likely causes: the event isn't purely the JSON object; dimension keys or values aren't top-level; a value is out of range; an array has more than 100 items; more than 100 metric definitions; a timestamp outside 14 days past to 2 hours future (reference/cloudwatch/metrics-and-math.md)aws cloudwatch list-metrics --namespace AWS/Logs for EMF error metrics; read a raw event in the log group
Some log events missing after PutLogEvents succeededEvents more than 2 hours in the future or older than 14 days or the retention period are rejected individually. Read rejectedLogEventsInfo in the responseThe PutLogEvents response → rejectedLogEventsInfo (tooNewLogEventStartIndex, tooOldLogEventEndIndex, expiredLogEventEndIndex)
A log group has no logs from LambdaThe function never ran, or its role can't write logs (guides/lambda/debug-failing-function.md). Or it logs to a custom group set in LoggingConfigaws lambda get-function-configuration --function-name <fn> --query LoggingConfig → LogGroup; the function's Invocations metric
console.debug lines missing from LambdaJSON log format defaults the application log level to INFO (reference/cloudwatch/log-groups.md)Same call → LogFormat, ApplicationLogLevel
Old logs "disappeared"Retention expired them. Deletion runs up to 72 hours after expiryaws logs describe-log-groups --log-group-name-prefix <g> → retentionInDays
Logs in a KMS-encrypted group can't be readThe key is disabled, the logs principal was removed from the key policy, or the key was deleted, which makes the data unrecoverable. A newly associated key takes up to 5 minutes to applydescribe-log-groups → kmsKeyId, then aws kms describe-key --key-id <k> --query KeyMetadata.KeyState
Alarm fired once and never notified againActions run on state change only (guides/cloudwatch/create-alarms.md)aws cloudwatch describe-alarm-history --alarm-name <a> --history-item-type StateUpdate

CloudWatch Logs exceptions

ExceptionCause → fixCheck
ResourceNotFoundExceptionThe log group or stream doesn't exist in this account and Region. Create it, or check the name (/aws/lambda/<fn>) and Regionaws logs describe-log-groups --log-group-name-prefix <g> --region <r>
ResourceAlreadyExistsExceptionCreating a group or stream that exists. Treat it as success in setup codeSame call
InvalidParameterExceptionA malformed request. For PutLogEvents, commonly events not in chronological order, a batch spanning more than 24 hours, more than 10,000 events, or over 1,048,576 bytes (messages plus 26 bytes per event). For queries: a bad log group identifier, such as an ARN with a trailing *The message names the field; sort events by timestamp and check the batch's time span
InvalidSequenceTokenException, DataAlreadyAcceptedExceptionNo longer returned, because PutLogEvents ignores sequence tokens. Delete the retry logic for themSearch your code for sequenceToken
MalformedQueryExceptionLogs Insights syntax error. The QueryCompileError gives the locationThe error's QueryCompileError → location
LimitExceededExceptionA maximum was reached, for example concurrent Logs Insights queries (shared with dashboards and scheduled queries). Back offaws logs describe-queries --status Running
ThrottlingExceptionThe per-account TPS quota for that API was exceeded (PutLogEvents, Create*, Describe*: adjustable in Service Quotas). The SDK retries it; batch more per callCalls per second for that API (SDK retry logs, CloudTrail errorCode)
ServiceQuotaExceededExceptionA resource quota, such as the number of log groups. Request an increaseService Quotas for CloudWatch Logs
AccessDeniedExceptionAn IAM denial (reference/iam/errors.md). On associate-kms-key / create-log-group --kms-key-id, a missing kms:DescribeKey on the keyaws sts get-caller-identity; for KMS, aws kms get-key-policy for logs.<region>.amazonaws.com
OperationAbortedException, ConflictExceptionA concurrent change to the same resource. RetryAnother process changing the same group (CloudTrail)
UnrecognizedClientExceptionInvalid access key ID or secret key (reference/sts/credential-sources.md)aws sts get-caller-identity with the same credentials
ServiceUnavailableException (500)Transient. Retry with backoffRetry succeeds; the AWS Health Dashboard
SessionStreamingException, SessionTimeoutExceptionLive Tail session errors. Restart the sessionRestart StartLiveTail and see if it recurs

CloudWatch metrics and alarms exceptions

The PutMetricData causes are documented. The rest are the hub's reading of the SDK exception names.

Exception (SDK name; API error code)Cause → fixCheck
InvalidParameterValueException (InvalidParameterValue)A value out of range or invalid: NaN or Infinity, beyond ±2^360, a timestamp more than 2 weeks old or 2 hours ahead, a bad namespace, or more than 30 dimensionsPrint the values you send: NaN, Infinity, out-of-range or the timestamp
InvalidParameterCombinationException (InvalidParameterCombination)Parameters that can't go together. On alarms, for example, both MetricName and Metrics math (UNVERIFIED example)The request JSON: which mutually exclusive fields are both set
MissingRequiredParameterException (MissingParameter)A required field is absentThe message names the field
LimitExceededException / LimitExceededFaultA quota such as the number of alarms. Request an increase or consolidateService Quotas for CloudWatch; aws cloudwatch describe-alarms --query 'length(MetricAlarms)'
ResourceNotFoundException, DashboardNotFoundErrorWrong alarm, dashboard or other resource name, or the wrong Regionaws cloudwatch describe-alarms --alarm-names <a> --region <r> or list-dashboards
DashboardInvalidInputError, InvalidFormatFaultDashboard body or input JSON is invalidThe error's dashboardValidationMessages
KmsAccessDeniedException, KmsKeyDisabledException, KmsKeyNotFoundExceptionA KMS key used by a CloudWatch feature can't be used (reference/kms/key-policies-and-errors.md)aws kms describe-key and get-key-policy for the key the feature uses
ConcurrentModificationExceptionA parallel update. RetryAnother deploy updating the same resource (CloudTrail)
InternalServiceFault (InternalServiceError, 500)Transient. RetryRetry succeeds

When none of these fits

Check where the data should be, step by step: did the producer call succeed (CloudTrail PutLogEvents / PutMetricData / PutEvents with errorCode, guides/cloudtrail/find-who-did-what.md)? Is it the right account, Region, log group, namespace and dimensions? Is it within retention, and past the visibility delays above? Collect the request ID from the SDK error for AWS Support.

Read this document as markdown — the same bytes an agent receives.