A few days ago, my colleague was building a custom form in Drupal 7. Everything was going great until he added a file field, at which point all hell broke loose. The data didn't submit and he received these notices:
Notice: Undefined index: field in field_widget_field() (Row 578 of ...)
Notice: Undefined index: instance in field_widget_instance() (Row 603 of ....)
Since the field was using a custom widget, we were first debugging there, until we finally found the real culprit somewhere completely else: passing by reference.