@bruno - You specifically mentioned that the entity you are writing to and your list of records are of the same entity type, so the idea that your you have provided wrong collumn names or there aren't the same amount number of collumns etc, though technically correct, is bull.
When this happens it is typically because the table that was selected for writing in the DB via the Entities table turned out to be the wrong one - in essence the "Physical_Table_Name" provided is not the one you want. The table names are case sensitive, so first off run a debug and check that there is a record selected from the Entities table, if there is one make sure that the one you got is the correct one (another Espace may have a table with the same name in which case you may get the wrong one) - use "Entity.Espace_Id = GetOwnerEspaceIdentifier()"as one of your filters to be sure of this.
Lastly if this doesn't produce an answer, it may be something simple like the action where you select the entity (which would provide the value for GetOwnerEspaceIdentifier()) is in the wrong Espace. It must be in the Espace that the table is located in, otherwise you wont get a result if you include GetOwnerEspaceIdentifier in the aggregate.