The icon loading is case-sensitive, which causes issues on case-sensitive file systems (e.g., Linux). If the icon filename is provided with uppercase letters (e.g., Question), the icon fails to load, even if the name is correct.
Suggested Fix:
Modify the line:
self.icon = self.load_icon(icon.lower(), icon_size) if icon else None
it's at line 202 in ctkmessagebox.py.
This ensures case-insensitive matching of filenames when loading icons.