The reason for the failure aside, if we are unable to deallocate network for the instance, the proper behavior _is_ to set the instance to ERROR state. However you should be able to retry deleting the instance to retry deallocating the network. What happens when you try to delete the ERROR instance? Does it complain about a task_state or something?