บั๊กร้ายแรงใน macOS Sequoia (เวอร์ชัน 15.0) กำลังทำให้เกิดปัญหาประสิทธิภาพทั้งระบบสำหรับผู้ใช้ที่เรียกใช้แอปพลิเคชันยอดนิยมที่สร้างด้วย Electron framework รุ่นเก่า ปัญหานี้ส่งผลกระทบต่อแอปที่ใช้กันอย่างแพร่หลาย รวมถึง Visual Studio Code , Slack , Signal , Discord และอื่นๆ อีกมากมาย ทำให้เกิดความล่าช้าที่เห็นได้ชัดซึ่งส่งผลกระทบต่อระบบปฏิบัติการทั้งหมด
ปัญหานี้เกิดจากการเปลี่ยนแปลงที่ Apple ทำกับ private APIs ใน macOS Sequoia ซึ่งทำลายความเข้ากันได้กับ Electron เวอร์ชันเก่า เมื่อแอปที่ได้รับผลกระทบเหล่านี้ทำงาน ผู้ใช้จะประสบกับประสิทธิภาพระบบที่ช้าลงซึ่งขยายไปนอกเหนือจากแอปพลิเคชันที่มีปัญหาเท่านั้น
ผลกระทบอย่างแพร่หลายต่อแอปพลิเคชันยอดนิยม
รายงานจากชุมชนเผยให้เห็นถึงการแพร่กระจายอย่างกว้างขวางของบั๊กนี้ในซอฟต์แวร์ที่ใช้กันทั่วไป ผู้ใช้ได้ระบุแอปพลิเคชันที่ได้รับผลกระทบตั้งแต่เครื่องมือพัฒนาเช่น Visual Studio Code และ Cursor ไปจนถึงแพลตฟอร์มการสื่อสารเช่น Slack และ Signal รวมถึงซอฟต์แวร์สร้างสรรค์เช่น Figma แม้กระทั่งแอปพลิเคชันที่ไม่คาดคิดก็ติดอยู่ในปัญหานี้ โดยผู้ใช้ค้นพบว่า DaVinci Resolve มีส่วนประกอบ Electron อยู่ด้วย ซึ่งน่าจะใช้สำหรับเอกสารช่วยเหลือหรือหน้าจอเริ่มต้น
ปัญหานี้เน้นย้ำถึงปัญหาที่กว้างขึ้นเกี่ยวกับการบำรุงรักษาซอฟต์แวร์ในระบบนิเวศ Electron แอปพลิเคชันหลายตัวใช้เวอร์ชันของเฟรมเวิร์กที่ล้าสมัยอย่างมาก โดยบางตัวใช้เวอร์ชันที่ล้าหลังกว่าเวอร์ชันเสถียรปัจจุบัน 15 รุ่นหรือมากกว่า
แอปพลิเคชันที่ได้รับผลกระทบโดยทั่วไป:
- Visual Studio Code (Electron 37.3.1)
- Slack (Electron 38.1.2)
- Signal (Electron 38.1.2)
- Discord
- Figma
- Cursor (Electron 34.5.8)
- DaVinci Resolve (Electron 36.3.2)
- Docker Desktop (Electron 37.2.6)
สาเหตุทางเทคนิคและการแก้ไขที่มีอยู่
ทีม Electron ได้ระบุสาเหตุรากและปล่อยการแก้ไขในหลายเวอร์ชันของเฟรมเวิร์ก บั๊กเกี่ยวข้องกับการเรนเดอร์เงาหน้าต่างที่กระตุ้นให้เกิดการวาดระบบใหม่มากเกินไป เวอร์ชันที่แก้ไขแล้ว ได้แก่ Electron 36.9.2, 37.6.0, 38.2.0, 39.0.0 และทุกเวอร์ชันที่สูงกว่า 39
อย่างไรก็ตาม การแก้ไขต้องการให้นักพัฒนาแอปพลิเคชันแต่ละรายอัปเดต Electron เวอร์ชันที่รวมอยู่และปล่อยบิลด์ใหม่ให้กับผู้ใช้ ห่วงโซ่การพึ่งพานี้หมายความว่าแม้จะมีโซลูชันทางเทคนิคอยู่แล้ว แต่ผู้ใช้ต้องรอให้นักพัฒนาแอปแต่ละรายนำการอัปเดตไปใช้
เวอร์ชัน Electron ที่แก้ไขแล้ว:
- 36.9.2
- 37.6.0
- 38.2.0
- 39.0.0
- ทุกเวอร์ชันที่สูงกว่า 39.0.0
วิธีแก้ไขชั่วคราวและการตอบสนองของผู้ใช้
สำหรับผู้ใช้ที่ประสบปัญหาความล่าช้า มีวิธีแก้ไขชั่วคราวโดยการรันคำสั่ง terminal ที่ปิดเงาหน้าต่างสำหรับแอป Electron แม้ว่าจะแก้ปัญหาประสิทธิภาพได้ แต่ทำให้แอปพลิเคชันดูไม่ขัดเกลาทางภาพ
นี่คือเหตุผลที่คุณไม่ควรใช้ private APIs
การตอบสนองของชุมชนมีความหลากหลาย โดยผู้ใช้บางคนใช้โอกาสนี้ในการจัดระเบียบแอปพลิเคชันที่ติดตั้งไว้ ลบซอฟต์แวร์ที่ใช้ Electron ที่ไม่ได้ใช้ซึ่งสะสมไว้เมื่อเวลาผ่านไป ในขณะที่คนอื่นๆ แสดงความไม่พอใจกับรอบการอัปเดตที่ช้าของแอปพลิเคชันที่จำเป็น
คำสั่งแก้ไขชั่วคราว:
launchctl setenv CHROME_HEADLESS 1
หมายเหตุ: คำสั่งนี้จะปิดการใช้งานเงาของหน้าต่าง ทำให้แอปพลิเคชันดูไม่เรียบร้อยเท่าเดิม แต่สามารถแก้ไขปัญหาด้านประสิทธิภาพได้
ผลกระทบที่กว้างขึ้นสำหรับการพัฒนา macOS
เหตุการณ์นี้ทำให้เกิดคำถามเกี่ยวกับกระบวนการประกันคุณภาพของ Apple สำหรับการปล่อยระบบปฏิบัติการหลัก เนื่องจากความนิยมของแอปพลิเคชันที่ใช้ Electron บน macOS หลายคนในชุมชนนักพัฒนาคาดหวังว่าปัญหาความเข้ากันได้เช่นนี้จะถูกจับได้ในช่วงระยะเวลาทดสอบเบต้า
สถานการณ์นี้ยังเน้นย้ำถึงความตึงเครียดที่ดำเนินต่อไประหว่างผู้จำหน่ายระบบปฏิบัติการและเฟรมเวิร์กของบุคคลที่สามที่พึ่งพา APIs ที่ไม่มีเอกสาร แม้ว่า Apple จะเตือนอย่างชัดเจนเกี่ยวกับการใช้ private APIs เนื่องจากความไม่เสถียรที่อาจเกิดขึ้น แต่ลักษณะที่แพร่หลายของปัญหานี้แสดงให้เห็นว่าการพึ่งพาเหล่านี้ฝังลึกเข้าไปในระบบนิเวศซอฟต์แวร์มากแค่ไหน
ณ ต้นเดือนตุลาคม 2025 แอปพลิเคชันหลักส่วนใหญ่ยังไม่ได้ปล่อยการอัปเดตด้วย Electron เวอร์ชันที่แก้ไขแล้ว ทำให้ผู้ใช้หลายคนต้องเลือกระหว่างประสิทธิภาพระบบและการทำงานของแอปพลิเคชัน