Skip to content

How ScreenTune Fixes Mazda Connect Message Ordering

ScreenTune corrects a message-ordering defect present throughout the Gen 6 Mazda Connect firmware line.

Websocket message ordering (GUI framework)

Section titled “Websocket message ordering (GUI framework)”

Affected firmware: all Gen 6 MZD Connect versions, v55 through v74.

Symptoms: stale screens, missed transitions, or the wrong view after rapid interaction such as switching audio sources or dismissing an alert.

Root cause: two functions in the GUI framework’s websocket layer, _isStack and _delStack in Websockets.js, are written as standalone JavaScript functions but called as object methods via this._isStack(). They were meant to be prototype methods and were never attached to the Websockets prototype. Every call throws a TypeError and silently fails.

Those functions are part of the message reordering system. When the MMUI (the main UI controller) sends commands to the GUI over an internal websocket, messages can arrive out of order. The reordering system queues them and replays them in sequence. With _isStack broken:

  • After a focus stack update, any queued screen transition for the same sequence is never delivered. The GUI updates focus but drops the matching visual transition.
  • After a context change (switching apps), queued focus and transition messages are never flushed. The GUI switches context but the screen doesn’t update to match.

Logs recorded the TypeError 225 times in one boot cycle.

What ScreenTune changes: the two standalone functions become proper prototype methods on the Websockets object. Nothing else is touched. The fix is two lines:

function _isStack( → Websockets.prototype._isStack = function(
function _delStack( → Websockets.prototype._delStack = function(

This patch fixes a software defect in the UI layer. It does not address hardware faults: a failing touch digitizer (ghost touch), a CMU that black-screens and reboots, or a dying 12V battery are separate problems with separate causes. If your screen issue is physical, the firmware fix won’t reach it.