It was the thing in the order of functions, and the check :
if(is_user_logged_in()){
$current_user = wp_get_current_user();
}
else {
$user_id = get_post_field( 'post_author', $post_id );
$current_user = get_userdata($user_id);
}