I recently encountered an issue where I was loading data into a form some of the times after it loaded and others before it loaded. Things that called the setValue() function such as setValue(), clearValue(), select() would throw an error and halt execution. I couldn't just call myComboBox.value="xyz" because some of the times the control was already loaded. I found the error was that even though a store was bound to the combo box, the records hadn't completed populating. I added the below guard clause in an override that seems to work. I've only tested with bound stores (local) and not with remote stores, arrays or other types of data.

Code:
Ext.define('overrides.form.field.ComboBox', {
    override: 'Ext.form.field.ComboBox',

    setValue: function(value) {
        var me = this,
                bind = me.getBind(),
                store = me.getStore();

        // Guard Clause. If a store is bound to the combo box, and it hasn't been populated yet,
        //   this will cause an error. Set the internal value, and when the store is defined,
        //   setValueOnData() will be called and will complete the selection
        if (bind.store !== null && store === null)
       {
            me.value = value;
            return;
       }

        this.callParent(arguments);
​    }
});
I attempted to recreate in a fiddle, but I can't seem to 100% mimic my app behavior. It may be the type of store or proxy used. https://fiddle.sencha.com/#view/editor&fiddle/26pa

During my development me.getStore() is null in an iteration and then throws an error.