Before adding a field to a ContentType, it is important to check that the field is not already part of the Content Type.
Here’s an extension method to ClientContext that does just that:
public static bool ExistInContentType( this ClientContext clientContext, ContentType contentType, Field field) { var fieldLinks = contentType.FieldLinks; var existingFields = clientContext.LoadQuery(fieldLinks.Where(fl = fl.Id == field.Id)); clientContext.ExecuteQuery(); var existingField = existingFields.FirstOrDefault(); if (existingField != null) return true; return false; }