Using an entity reference field with the autocomplete widget (not tags style) adds the selected values to an array where target_id => entity_label, not the entity ID. This fails the is_numeric check in entityreference_field_is_empty() and returns that the field is empty even when a reference is made. Forcing the form to submit results in a PDOException:

An AJAX HTTP error occurred. HTTP Result Code: 500 Debugging information follows. Path: /batch?id=129&op=do StatusText: Service unavailable (with message) ResponseText: PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'A' for column 'field_entitytest_target_id' at row 1: INSERT INTO {field_data_field_entitytest} (entity_type, entity_id, revision_id, bundle, delta, language, field_entitiytest_target_id) VALUES (:dn_insert_placeholder_0, :dn_insert_placeholder_1, :dn_insert_placeholder_2, :dn_insert_placeholder_3, :dn_insert_placeholder_4, :dn_insert_placeholder_5, :dn_insert_placeholder_6); Array ( [:dn_insert_placeholder_0] => node [:dn_insert_placeholder_1] => 404 [:dn_insert_placeholder_2] => 967 [:dn_insert_placeholder_3] => customcontenttest [:dn_insert_placeholder_4] => 0 [:dn_insert_placeholder_5] => und [:dn_insert_placeholder_6] => A ) in field_sql_storage_field_storage_write() (line 451 of /modules/field/modules/field_sql_storage.module).

Based on the value I attempted to enter and the error, I think what it's doing is returning the first letter of the entity label stored in target_id, instead of the entity ID.