Skip to content

Bug: Missing _buffer_config check before in flush_buffer #6793

Open
@tonnico

Description

@tonnico

Expected Behaviour

When flush_buffer_on_uncaught_error is true but no buffer_config is set, no AttributeError should be raised on an error.

Current Behaviour

[ERROR] AttributeError: 'Logger' object has no attribute '_buffer_cache'
Traceback (most recent call last):
  File "/opt/python/aws_lambda_powertools/logging/logger.py", line 551, in decorate
    self.flush_buffer()
  File "/opt/python/aws_lambda_powertools/logging/logger.py", line 1205, in flush_buffer
    buffer = self._buffer_cache.get(tracer_id)
  File "/opt/python/aws_lambda_powertools/logging/logger.py", line 306, in __getattr__
    return getattr(self._logger, name)

Code snippet

from aws_lambda_powertools.logging import Logger

logger = Logger()

@logger.inject_lambda_context(flush_buffer_on_uncaught_error=True)
def handler(event, context):
    raise ValueError("foo")

Possible Solution

like in other places, wrap self._buffer_cache.get like:

if not self._buffer_config:
    return

Steps to Reproduce

Deploy lambda and raise the exception.

Powertools for AWS Lambda (Python) version

latest

AWS Lambda function runtime

3.13

Packaging format used

PyPi

Debugging logs

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    Status

    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions