You need a second variable for the `profile2_load_by_user($obj_user)` function. What you currently get back is an array of profiles, e.g 'candidate' => Profile object, 'person' => Profile object, 'student' => Profile object You need to specify the profile in the call and then you just get a profile object back. Then you can save the profile as it is an Profile object. e.g. `profile2_load_by_user($obj_user,'candidate');`