Mục lục

Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly

Hướng dẫn khắc phục lỗi “TypeError: unsupported operand type(s) for |” sau khi nâng cấp aaPanel

Ngày đăng: October 10, 2025

Sau khi nâng cấp aaPanel lên phiên bản mới (ví dụ 7.0.8 hoặc cao hơn), khi chạy lệnh:

  1. bt
Traceback (most recent call last):
  File "/www/server/panel/tools.py", line 20, in <module>
    import public,time,json
  File "/www/server/panel/class/public/__init__.py", line 14, in <module>
    from .common import *
  File "/www/server/panel/class/public/common.py", line 9500, in <module>
    def find_value_by_key(data: dict | List[dict], key: str, default: Any = None) -> Any:
TypeError: unsupported operand type(s) for |: 'type' and '_GenericAlias'

Nguyên nhân

Lỗi này xảy ra do:

Phiên bản aaPanel mới được viết bằng Python 3.10 trở lên.

Trong Python 3.10, người ta bắt đầu hỗ trợ cú pháp kiểu dữ liệu kiểu mới như:

dict | list

Tuy nhiên, trên hệ thống của bạn aaPanel vẫn đang chạy bằng Python 3.8 hoặc 3.9, vốn không hỗ trợ cú pháp này, dẫn đến lỗi trên.

Vậy để xử lý nhanh và không cần nâng cấp Python ngay, bạn có thể chỉnh lại cú pháp trong file code aaPanel để tương thích với phiên bản Python hiện tại.

Bước 1: Mở file common.py

  1. nano /www/server/panel/class/public/common.py

Bước 2: Tìm đến dòng khoảng 9500 (nơi xuất hiện lỗi)

Tại đó bạn sẽ thấy nội dung như sau:

def find_value_by_key(data: dict | List[dict], key: str, default: Any = None) -> Any:

Bước 3: Chỉnh sửa lại như sau:

Thêm dòng import ở trên và thay phần định nghĩa hàm:

from typing import Union, List, Any
def find_value_by_key(data: Union[dict, List[dict]], key: str, default: Any = None) -> Any:

Bước 4: Lưu và thoát

Trong nano, nhấn:

Ctrl + O → Enter → Ctrl + X

Bước 5: Khởi động lại Cyberpanel và chạy lại lệnh kiểm tra

  1. /usr/local/lsws/bin/lswsctrl restart
  1. bt

Nếu aaPanel hiển thị menu bình thường, nghĩa là lỗi đã được khắc phục tạm thời thành công.

*Trường hợp vẫn báo lỗi như trên nhưng ở dòng khác thì tiếp tục fix lỗi và thay nội dung ở bước 3.

Ví dụ: chạy lệnh bt hiện dòng lỗi 9596 như hình thì tiếp tục khắc phục như bước 3 phía trên

Kết luận

  • Nguyên nhân: Python phiên bản thấp (3.8/3.9) không hiểu cú pháp mới của aaPanel.

  • Cách fix tạm: Chỉnh lại dòng 9500 trong file common.py dùng Union thay cho |.

  • Giải pháp lâu dài: Cập nhật Python lên 3.10 hoặc 3.11 và khởi động lại aaPanel.

Vậy là CloudFly đã hướng dẫn các bạn fix lỗi "TypeError: unsupported operand type(s) for |" hoàn tất.

CloudFly chúc các bạn thành công!

Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly
Chia sẻ

0 câu trả lời