I think you are missing lrM... Last Running Mode. I think that's the attribute Alexa is looking for...
// Update lastRunningMode based on mode and operatingstate
def lrM(mode) {
String lrm = getDataValue("lastRunningMode")
if (mode.contains("auto") || mode.contains("off") && lrm != "heat") { updateDataValue("lastRunningMode", "heat") }
else { updateDataValue("lastRunningMode", mode) }
}
but it's been years since I encountered that issue and I may be confusing this with a that.