form with taxonomy autocomplete widget throws error upon submit: Invalid argument supplied for foreach()
I'm pretty sure this error will be coming from the following loop in taxonomy_autocomplete_validate()

 // Collect candidate vocabularies.
    $field = field_widget_field($element, $form_state);
    $vocabularies = array();
    foreach ($field['settings']['allowed_values'] as $tree) {
      if ($vocabulary = taxonomy_vocabulary_machine_name_load($tree['vocabulary'])) {
        $vocabularies[$vocabulary-&gt;vid] = $vocabulary;
      }
    }


which is collecting the vocabularies allowed for the field, check:


Field is set to be a term reference
Field has at least one allowed vocabulary set
field_city is the correct machine name of the field in question