Base field provided by a module is not accessable this is a follow up to my question here.
In my .module file I use the following code to add a base field to all my nodes:

/**
 * Implements hook_form_BASE_FORM_ID_alter() for node_form().
 */
function seo_fields_form_node_form_alter(&amp;$form, FormStateInterface $form_state) {
  $form['seo_fields'] = array(
    '#type' =&gt; 'details',
    '#title' =&gt; t('Metadata for SEO'),
    '#open' =&gt; FALSE,
    '#group' =&gt; 'advanced',
    '#weight' =&gt; 110,
  );

  $form['seo_description']['#group'] = 'seo_fields';
}

/**
 * Implements hook_entity_base_field_info().
 */

function seo_fields_entity_base_field_info(EntityTypeInterface $entity_type) {
  if ($entity_type-&gt;id() == 'node') {
    $fields = array();

    $fields['seo_description'] = BaseFieldDefinition::create('string_long')
          -&gt;setName('seo_description')
          -&gt;setLabel(t('SEO description for this entity'))
          -&gt;setDescription(t('If not present, the module will try to create it from entity body.'))
          -&gt;setDefaultValue('')
          -&gt;setSetting('case_sensitive', TRUE)
          -&gt;setDisplayOptions('view', array(
            'label' =&gt; 'hidden',
            'type' =&gt; 'string',
            'weight' =&gt; -4,
          ))
          -&gt;setDisplayOptions('form', array(
            'type' =&gt; 'string_textarea',
            'weight' =&gt; 1,
            'settings' =&gt; array(
              'rows' =&gt; 4,
            ),
          ));

    return $fields;
  }
}


After running update.php the field is created without any error, I am able to edit it in the node form and it saves values to the database, but once I try to access it's value (in templates or preprocess functions / through EntityInterface) I always get an empty string. Even the node form shows an empty field after input and saving (even though the value clearly exists in the DB). 
Any help?
I'm going to guess and say that this is because of Unrevisioned base fields are ignored during entity load.

As a workaround (or maybe it actually makes sense to do so), add -&gt;setRevisionable(TRUE).