The onClick method for MessageBox does not properly retrieve the itemId or text of a button that are needed as the first parameter when calling the callback method. Specifically, the existing code (below) attempts to use button.itemId and button.text, both of which are non-existent.

Code:
onClick: function(button) {
        if (button) {
            var config = button.userConfig || {};




            if (typeof config.fn == 'function') {
                config.fn.call(
                    config.scope || null,
                  //Fixing this sencha bug until sencha address it. The next line previously referred to button.itemId
                  //and button.text, both of which do not exist (the real fields are private ones _itemId, and _text).
                    button.itemId || button.text,
                    config.input ? config.input.dom.value : null,
                    config
                );
            }




            if (config.cls) {
                    this.el.removeCls(config.cls);
                }




            if (config.input) {
                config.input.dom.blur();
            }
        }




        this.hide();
    }
The fix should be to refer to the getters (or, less ideally, the properly named private fields):

Code:
    onClick: function(button) {
        if (button) {
            var config = button.userConfig || {};




            if (typeof config.fn == 'function') {
                config.fn.call(
                    config.scope || null,
                    button.getItemId() || button.getText(),
                    config.input ? config.input.dom.value : null,
                    config
                );
            }




            if (config.cls) {
                    this.el.removeCls(config.cls);
                }




            if (config.input) {
                config.input.dom.blur();
            }
        }




        this.hide();
    }