diff --git a/src/Entity/Workflow.php b/src/Entity/Workflow.php
index 51ff749bbbb5bf4f9675207dbc63d7a8dc2f1a10..52515d91016a7140ec262bd2a5b054406faa394a 100644
--- a/src/Entity/Workflow.php
+++ b/src/Entity/Workflow.php
@@ -138,7 +138,7 @@ class Workflow extends ConfigEntityBase implements WorkflowInterface {
     $status = parent::save();
     // Make sure a Creation state exists, when saving a Workflow.
     if ($status == SAVED_NEW) {
-      $this->getCreationState();
+      $this->createCreationState();
     }
 
     return $status;
@@ -153,7 +153,6 @@ class Workflow extends ConfigEntityBase implements WorkflowInterface {
       // Better performance, together with Annotation static_cache = TRUE.
       // Load the states, and set the creation state.
       $workflow->getStates();
-      $workflow->getCreationState();
     }
   }
 
@@ -239,6 +238,21 @@ class Workflow extends ConfigEntityBase implements WorkflowInterface {
     return $this->id();
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function createCreationState() {
+    if (\Drupal::isConfigSyncing()) {
+      // Do not create the default state while configuration are importing.
+    }
+    elseif (!$this->creation_state) {
+      $state = $this->createState(WORKFLOW_CREATION_STATE_NAME);
+      $this->creation_state = $state;
+      $this->creation_sid = $state->id();
+    }
+    return $this->creation_state;
+  }
+
   /**
    * {@inheritdoc}
    */
@@ -274,17 +288,8 @@ class Workflow extends ConfigEntityBase implements WorkflowInterface {
         }
       }
     }
-
-    // Then, create it.
-    if (\Drupal::isConfigSyncing()) {
-      // Do not create the default state while configuration are importing.
-    }
-    elseif (!$this->creation_state) {
-      $state = $this->createState(WORKFLOW_CREATION_STATE_NAME);
-      $this->creation_state = $state;
-      $this->creation_sid = $state->id();
-    }
-
+    // If not found, create it.
+    $this->createCreationState();
     return $this->creation_state;
   }
 
@@ -293,8 +298,7 @@ class Workflow extends ConfigEntityBase implements WorkflowInterface {
    */
   public function getCreationSid() {
     if (!$this->creation_sid) {
-      $state = $this->getCreationState();
-      return $state->id();
+      $this->getCreationState();
     }
     return $this->creation_sid;
   }
diff --git a/src/Entity/WorkflowInterface.php b/src/Entity/WorkflowInterface.php
index 2478def024755a1129144de55dc8108ae3678add..13cacca5ada2c14c0aeb3e3897bfdabb575d3f0c 100644
--- a/src/Entity/WorkflowInterface.php
+++ b/src/Entity/WorkflowInterface.php
@@ -41,6 +41,14 @@ interface WorkflowInterface extends EntityInterface {
    */
   public function isDeletable();
 
+  /**
+   * Creates the initial state for a new Workflow.
+   *
+   * @return \Drupal\workflow\Entity\WorkflowState
+   *   The initial state.
+   */
+  public function createCreationState();
+
   /**
    * Create a new state for this workflow.
    *
@@ -61,7 +69,7 @@ interface WorkflowInterface extends EntityInterface {
    * Gets the initial state for a newly created entity.
    *
    * @return \Drupal\workflow\Entity\WorkflowState
-   *   The intial state.
+   *   The initial state.
    */
   public function getCreationState();
 
diff --git a/src/Form/WorkflowConfigTransitionRoleForm.php b/src/Form/WorkflowConfigTransitionRoleForm.php
index e4ee43b1a3fa6b99302e7a11d4570204cb3fad6f..6b7cc28ab76b9b6045e959aa00ddd3a4ac7a55eb 100644
--- a/src/Form/WorkflowConfigTransitionRoleForm.php
+++ b/src/Form/WorkflowConfigTransitionRoleForm.php
@@ -133,21 +133,20 @@ class WorkflowConfigTransitionRoleForm extends WorkflowConfigTransitionFormBase
     }
 
     // Make sure 'author' is checked for (creation) -> [something].
-    $creation_state_id = $this->workflow->getCreationState()->id();
+    $creation_state = $this->workflow->getCreationState();
     $author_has_permission = FALSE;
     foreach ($form_state->getValue($this->entitiesKey) as $from_sid => $to_data) {
       foreach ($to_data as $to_sid => $transition_data) {
         if (empty($transition_data['roles'][WORKFLOW_ROLE_AUTHOR_RID])) {
           continue;
         }
-        if ($from_sid == $creation_state_id && $from_sid != $to_sid) {
+        if ($from_sid == $creation_state->id() && $from_sid != $to_sid) {
           $author_has_permission = TRUE;
           break;
         }
       }
     }
     if (!$author_has_permission) {
-      $creation_state = $this->workflow->getCreationState();
       $form_state->setErrorByName('id', $this->t('Please give the author permission to go from %creation to at least one state!',
         ['%creation' => $creation_state->label()]));
     }