I am have been stuggling with this for the past day or so. I am simply trying to create a custom entity and populate/or update the image field with the fid. Whats weird is that every other form field i am passing i can get the value for but this managed_file field for uploading an image always returns NULL when I call `dpm()`. 

    use Drupal\Core\Form\FormBase;
    use Drupal\Core\Form\FormStateInterface;
    use Drupal\file\Entity\File;

Within my form_build function I use the following code. 

    // Manage file.
    $form['theimage'] = array(
      '#type' => 'managed_file',
      '#title' => 'Managed file',
      '#description' => $this->t('Manage file, #type = managed_file'),
      //'#default_value' => $form_state->getValue('theimage'),
    '#upload_location' => 'public://images/',
    '#required' => FALSE,
    );

In the submission handler, I use the following code. 

    // Get the fid value, upload it and save it to the managed file table. 
    $fid = $form_state->getValue(['theimage', 0]);
    dpm($fid);
    if (!empty($fid)) {$file = File::load($fid);
     $file->setPermanent();
     $file->save(); 
    }

Any thoughts, solutions, or recommendations would be greatly appreciated.