wp_dropdown_pages in widget form

I have no idea why but changing the update function to the following seemed to do the trick:

public function update( $new_instance, $old_instance ) {
    $instance = $old_instance;
    if( isset( $new_instance['page_id'] ) ) {
        if( $new_instance == '' ) {
            $instance['page_id'] = '';
        } else if ( (int) $new_instance['page_id'] > 0 ) {
            $instance['page_id'] = (int) $new_instance['page_id'];
        }
    }
    return $instance;
}