You've found a bug! Please, raise an issue attaching the following traceback
https://github.com/jorgebastida/awslogs/issues/new
Version: 0.15.0
Python: 3.14.4 (main, Apr 7 2026, 13:13:20) [Clang 21.0.0 (clang-2100.0.123.102)]
boto3 version: 1.42.24
Platform: Darwin-25.0.0-arm64-arm-64bit-Mach-O
Args: ['/opt/homebrew/bin/awslogs', 'groups', '--profile', 'collectionspace']
Config: {options}
Traceback (most recent call last):
File "/opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/xml/etree/ElementTree.py", line 1532, in __init__
from xml.parsers import expat
File "/opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/xml/parsers/expat.py", line 4, in <module>
from pyexpat import *
ImportError: dlopen(/opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/lib-dynload/pyexpat.cpython-314-darwin.so, 0x0002): Symbol not found: _XML_SetAllocTrackerActivationThreshold
Referenced from: <1AAB1AFF-0B6A-3B67-86F5-A72CB69F8B1B> /opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/lib-dynload/pyexpat.cpython-314-darwin.so
Expected in: <4B473812-533A-3FD9-BA8B-D53CF5581C92> /usr/lib/libexpat.1.dylib
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/xml/etree/ElementTree.py", line 1535, in __init__
import pyexpat as expat
ImportError: dlopen(/opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/lib-dynload/pyexpat.cpython-314-darwin.so, 0x0002): Symbol not found: _XML_SetAllocTrackerActivationThreshold
Referenced from: <1AAB1AFF-0B6A-3B67-86F5-A72CB69F8B1B> /opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/lib-dynload/pyexpat.cpython-314-darwin.so
Expected in: <4B473812-533A-3FD9-BA8B-D53CF5581C92> /usr/lib/libexpat.1.dylib
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/awslogs/bin.py", line 210, in main
getattr(logs, options.func)()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/awslogs/core.py", line 226, in list_groups
for group in self.get_groups():
~~~~~~~~~~~~~~~^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/awslogs/core.py", line 240, in get_groups
for page in paginator.paginate(**kwargs):
~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/paginate.py", line 272, in __iter__
response = self._make_request(current_kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/context.py", line 123, in wrapper
return func(*args, **kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/paginate.py", line 360, in _make_request
return self._method(**current_kwargs)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/client.py", line 602, in _api_call
return self._make_api_call(operation_name, kwargs)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/context.py", line 123, in wrapper
return func(*args, **kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/client.py", line 1060, in _make_api_call
http, parsed_response = self._make_request(
~~~~~~~~~~~~~~~~~~^
operation_model, request_dict, request_context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/client.py", line 1084, in _make_request
return self._endpoint.make_request(operation_model, request_dict)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 119, in make_request
return self._send_request(request_dict, operation_model)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 196, in _send_request
request = self.create_request(request_dict, operation_model)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 132, in create_request
self._event_emitter.emit(
~~~~~~~~~~~~~~~~~~~~~~~~^
event_name,
^^^^^^^^^^^
request=request,
^^^^^^^^^^^^^^^^
operation_name=operation_model.name,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/hooks.py", line 412, in emit
return self._emitter.emit(aliased_event_name, **kwargs)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/hooks.py", line 256, in emit
return self._emit(event_name, kwargs)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/hooks.py", line 239, in _emit
response = handler(**kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/signers.py", line 108, in handler
return self.sign(operation_name, request)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/signers.py", line 191, in sign
auth = self.get_auth_instance(**kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/signers.py", line 312, in get_auth_instance
frozen_credentials = credentials.get_frozen_credentials()
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/credentials.py", line 697, in get_frozen_credentials
self._refresh()
~~~~~~~~~~~~~^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/credentials.py", line 584, in _refresh
self._protected_refresh(is_mandatory=is_mandatory_refresh)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/credentials.py", line 600, in _protected_refresh
metadata = self._refresh_using()
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/credentials.py", line 750, in fetch_credentials
return self._get_cached_credentials()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/credentials.py", line 760, in _get_cached_credentials
response = self._get_credentials()
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/credentials.py", line 920, in _get_credentials
response = client.assume_role(**kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/client.py", line 602, in _api_call
return self._make_api_call(operation_name, kwargs)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/context.py", line 123, in wrapper
return func(*args, **kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/client.py", line 1060, in _make_api_call
http, parsed_response = self._make_request(
~~~~~~~~~~~~~~~~~~^
operation_model, request_dict, request_context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/client.py", line 1084, in _make_request
return self._endpoint.make_request(operation_model, request_dict)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 119, in make_request
return self._send_request(request_dict, operation_model)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 197, in _send_request
success_response, exception = self._get_response(
~~~~~~~~~~~~~~~~~~^
request, operation_model, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 239, in _get_response
success_response, exception = self._do_get_response(
~~~~~~~~~~~~~~~~~~~~~^
request, operation_model, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 313, in _do_get_response
parsed_response = parser.parse(
response_dict, operation_model.output_shape
)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/parsers.py", line 267, in parse
parsed = self._do_parse(response, shape)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/parsers.py", line 613, in _do_parse
return self._parse_body_as_xml(response, shape, inject_metadata=True)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/parsers.py", line 617, in _parse_body_as_xml
root = self._parse_xml_string_to_dom(xml_contents)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/parsers.py", line 539, in _parse_xml_string_to_dom
parser = ETree.XMLParser(
target=ETree.TreeBuilder(), encoding=self.DEFAULT_ENCODING
)
File "/opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/xml/etree/ElementTree.py", line 1537, in __init__
raise ImportError(
"No module named expat; use SimpleXMLTreeBuilder instead"
)
ImportError: No module named expat; use SimpleXMLTreeBuilder instead