Environment
- aaPanel version: 8.0.1
- OS: Debian 13 (Trixie)
- Python version: 3.12.3
- Browser: Firefox 140.0
Steps to reproduce
- Go to Panel Settings → Alarm→Alarm List→Add task
Expected behavior
Add task configuration should:
Allow the user to enable and save alarm settings
Actual behavior
- The panel throws a 500 error with the message: An error occurred while the panel was running!
- The template list fails to load
- No alarm can be configured
Error:
TypeError: string indices must be integers, not 'str'
File "/www/server/panel/mod/base/push_mod/ssl_push.py", line 136, in filter_template
items = [{"title": i["domain"], "value": i["domain"]} for i in domain_list]
~^^^^^^^^^^
TypeError: string indices must be integers, not 'str'
Root cause
In ssl_push.py at line 136, the code assumes domain_list is always a list of dictionaries with a "domain" key:
items = [{"title": i["domain"], "value": i["domain"]} for i in domain_list
However, on aaPanel 8.0.1 with Python 3.12 on Debian 13, domain_list is returned as a plain list of strings, causing the TypeError when string indexing is attempted with "domain".
Proposed fix
Add an isinstance check to handle both string and dict formats gracefully:
items = [{"title": (i if isinstance(i, str) else i["domain"]), "value": (i if isinstance(i, str) else i["domain"])} for i in domain_list]
Impact
The alarm/push notification feature is completely unusable. Any attempt to push task templates results in a panel-level exception, preventing users from configuring any monitoring alerts.
Notes
- Reproduced consistently on Debian 13 with Python 3.12.3
- The proposed fix was verified locally and resolves the error without any side effects
Environment
Steps to reproduce
Expected behavior
Add task configuration should:
Allow the user to enable and save alarm settings
Actual behavior
Error:
TypeError: string indices must be integers, not 'str'
File "/www/server/panel/mod/base/push_mod/ssl_push.py", line 136, in filter_template
items = [{"title": i["domain"], "value": i["domain"]} for i in domain_list]
~^^^^^^^^^^
TypeError: string indices must be integers, not 'str'
Root cause
In ssl_push.py at line 136, the code assumes domain_list is always a list of dictionaries with a "domain" key:
items = [{"title": i["domain"], "value": i["domain"]} for i in domain_list
However, on aaPanel 8.0.1 with Python 3.12 on Debian 13, domain_list is returned as a plain list of strings, causing the TypeError when string indexing is attempted with "domain".
Proposed fix
Add an isinstance check to handle both string and dict formats gracefully:
Impact
The alarm/push notification feature is completely unusable. Any attempt to push task templates results in a panel-level exception, preventing users from configuring any monitoring alerts.
Notes