On Cron run Open and save all Profile2 based user profiles
profile2_load_by_user returns either a single profile or an array of profiles keyed by profile type. profile2_save expects a single profile.

It looks like in your particular case array is returned, so you need to:


Test what you got from profile2_load_by_user
If it's a single profile, use profile2_save directly.
If it's an array, either select the array element you need, or foreach over that array, calling profile2_save on each element.