D8 - Cannot make Custom EntityType translatable When I am trying to make a custom entity translatable I get the following error message:

The Redirect entity entity type cannot be translatable as it does not define a translatable "langcode" field. in &lt;em class="placeholder"&gt;Drupal\Core\Entity\EntityFieldManager-&gt;buildBaseFieldDefinitions


After checking other modules and the drupal docs I have to define 2 things:

1.) I need to create a translatable "langcode" field
2.) I need to set the entityType annotation to translatable

Still I receive this error. 

My annotation of the entityType:

@ContentEntityType(
 *   id = "email_confirm_redirect",
 *   label = @Translation("Redirect entity"),
 *   admin_permission = "administer email confirm redirect entity",
 *   base_table = "email_confirm_redirect",
 *   revision_table = "email_confirm_redirect_revision",
 *   data_table = "email_confirm_redirect_field_data",
 *   translatable = TRUE,
 *   handlers = {
 *     "list_builder" = "Drupal\email_confirm_redirect\Entity\Controller\RedirectListBuilder",
 *     "form" = {
 *       "add" = "Drupal\email_confirm_redirect\Form\RedirectForm",
 *       "edit" = "Drupal\email_confirm_redirect\Form\RedirectForm",
 *       "delete" = "Drupal\email_confirm_redirect\Form\RedirectDeleteForm",
 *     },
 *     "access" = "Drupal\email_confirm_redirect\RedirectAccessControlHandler",
 *   },
 *   list_cache_contexts = { "user" },
 *   entity_keys = {
 *     "id" = "id",
 *     "label" = "title",
 *     "uuid" = "uuid"
 *   },
 *   links = {
 *     "edit-form" = "/admin/email_confirm_redirect/{email_confirm_redirect_entity}/edit",
 *     "delete-form" = "/admin/email_confirm_redirect/{email_confirm_redirect_entity}/delete",
 *     "collection" = "/admin/structure/email_confirm_redirect/list"
 *   },
 * )


The field declaration in my baseFieldDefinition() function:

//langcode
        $fields['langcode'] = BaseFieldDefinition::create('language')
            -&gt;setLabel(t('Language'))
            -&gt;setTranslatable(true)
            -&gt;setDescription(t('The redirect language code.'))
            -&gt;setDisplayOptions('form', array(
                'type' =&gt; 'language_select',
                'weight' =&gt; 2,
            ));
I think you also need to add it to the entity keys:

entity_keys = {
  "id" = "id",
  "label" = "title",
  "uuid" = "uuid",
  "langcode" = "langcode"
}


Also make sure you're running drush entity-updates and clearing cache when making changes to base fields/annotations.