The delete function might have been called without fetch before (ie by external module) since it receives $id as parameter

And without fetch, the delete of extrafields will fail and other problem may appear with external triggers