One problem I've run into is that if I make a change to a device that adds a state, I get errors using updateStateOnServer() to set a value for that state, since it doesn't exist. Only editing the device in the Indigo client seems to create the new state properly.
I can add new device properties no problem, but not states.
Am I missing something obvious?