1

The upgrade of CiviCRM 5.12.0 version breaks the user registration process on Drupal 8 : Error type: Could not find a valid session key. I tried the upgrade on two different D8 sites with same issue. Select another Civi profile doesn't change it neither.

Apr 06 22:50:18  [info] $backTrace = #0 /server_path/vendor/civicrm/civicrm-core/CRM/Core/Error.php(381): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /server_path/vendor/civicrm/civicrm-core/CRM/Core/Controller.php(833): CRM_Core_Error::fatal("We can't load the requested web page. This page requires cookies to be enable...")
#2 /server_path/vendor/civicrm/civicrm-core/CRM/Core/Controller.php(828): CRM_Core_Controller->invalidKeyCommon()
#3 /server_path/vendor/civicrm/civicrm-core/CRM/Core/Controller.php(312): CRM_Core_Controller->invalidKey()
#4 /server_path/vendor/civicrm/civicrm-core/CRM/Core/Controller.php(204): CRM_Core_Controller->key("CRM_Profile_Form_Dynamic", TRUE, FALSE)
#5 /server_path/vendor/civicrm/civicrm-core/CRM/Core/Controller/Simple.php(66): CRM_Core_Controller->__construct("Dynamic Form Creator", TRUE, NULL, "CRM_Profile_Form_Dynamic", TRUE, FALSE)
#6 /server_path/vendor/civicrm/civicrm-core/CRM/Core/BAO/UFGroup.php(834): CRM_Core_Controller_Simple->__construct("CRM_Profile_Form_Dynamic", "Dynamic Form Creator", NULL)
#7 /server_path/docroot/modules/contrib/civicrm/civicrm.module(265): CRM_Core_BAO_UFGroup::getEditHTML(NULL, "", NULL, TRUE, TRUE, NULL, FALSE, "Individual")
#8 /server_path/docroot/core/lib/Drupal/Core/Extension/ModuleHandler.php(539): civicrm_form_user_register_form_alter((Array:26), Object(Drupal\Core\Form\FormState), "user_register_form")
#9 /server_path/docroot/core/lib/Drupal/Core/Form/FormBuilder.php(834): Drupal\Core\Extension\ModuleHandler->alter("form", (Array:26), Object(Drupal\Core\Form\FormState), "user_register_form")
#10 /server_path/docroot/core/lib/Drupal/Core/Form/FormBuilder.php(276): Drupal\Core\Form\FormBuilder->prepareForm("user_register_form", (Array:26), Object(Drupal\Core\Form\FormState))
#11 /server_path/docroot/core/lib/Drupal/Core/Controller/FormController.php(93): Drupal\Core\Form\FormBuilder->buildForm("user_register_form", Object(Drupal\Core\Form\FormState))
#12 [internal function](): Drupal\Core\Controller\FormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch))
#13 /server_path/docroot/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array((Array:2), (Array:2))
#14 /server_path/docroot/core/lib/Drupal/Core/Render/Renderer.php(582): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#15 /server_path/docroot/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
#16 /server_path/docroot/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext((Array:2), (Array:2))
#17 /server_path/vendor/symfony/http-kernel/HttpKernel.php(151): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#18 /server_path/vendor/symfony/http-kernel/HttpKernel.php(68): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#19 /server_path/docroot/core/lib/Drupal/Core/StackMiddleware/Session.php(57): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#20 /server_path/docroot/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(47): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#21 /server_path/docroot/core/modules/page_cache/src/StackMiddleware/PageCache.php(99): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#22 /server_path/docroot/core/modules/page_cache/src/StackMiddleware/PageCache.php(78): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#23 /server_path/docroot/core/modules/ban/src/BanMiddleware.php(50): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#24 /server_path/docroot/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\ban\BanMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#25 /server_path/docroot/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(52): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#26 /server_path/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#27 /server_path/docroot/core/lib/Drupal/Core/DrupalKernel.php(693): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#28 /server_path/docroot/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#29 {main}
2

This issue is solved with the new Drupal 8.6.14 update. So it seems to have a conflict between Drupal 8.6.13 and CiviCRM 5.12.0.

| improve this answer | |
0

We are using Drupal : 8.7.5

CiviCRM : 5.13.6 ESR

We had same issue when admin try to create new user.

After comparing drupal 7 and drupal 8 module files, i found one the config setting is missing in drupal 8 module.

After applying changes, user get created but logged in user get logged out.

Then i found that in synchronize function we are resting the CiviCRM session. if we comment it, auto logout get stopped.

Here is are the both changes.

--- a/modules/contrib/civicrm/civicrm.module
+++ b/modules/contrib/civicrm/civicrm.module
@@ -251,6 +251,7 @@ function _civicrm_get_profiles($contact_id) {
 function civicrm_form_user_register_form_alter(&$form, &$form_state, $form_id) {
   $civicrm = \Drupal::service('civicrm');
   $civicrm->initialize();
+  CRM_Core_Config::singleton()->keyDisable = TRUE; // to skip quickform key validation
   $html = \CRM_Core_BAO_UFGroup::getEditHTML(NULL, '', NULL, TRUE, TRUE, NULL, FALSE, $civicrm->getCtype());

   // Need to disable the page cache.
@@ -273,6 +274,7 @@ function civicrm_form_user_register_form_alter(&$form, &$form_state, $form_id) {
  */
 function _civicrm_user_register_form_validate(&$form, FormStateInterface $form_state) {
   \Drupal::service('civicrm')->initialize();
+  CRM_Core_Config::singleton()->keyDisable = TRUE; 
   $errors = CRM_Core_BAO_UFGroup::isValid(NULL, '', TRUE);

   if (is_array($errors)) {
diff --git a/vendor/civicrm/civicrm-core/CRM/Core/BAO/UFMatch.php b/vendor/civicrm/civicrm-core/CRM/Core/BAO/UFMatch.php
index 39731cfa9..c60dbe23d 100644
--- a/vendor/civicrm/civicrm-core/CRM/Core/BAO/UFMatch.php
+++ b/vendor/civicrm/civicrm-core/CRM/Core/BAO/UFMatch.php
@@ -100,7 +100,6 @@ public static function synchronize(&$user, $update, $uf, $ctype, $isLogin = FALS

     // reset the session if we are a different user
     if ($ufID && $ufID != $userSystemID) {
-      $session->reset();

       //get logged in user ids, and set to session.
       if ($isUserLoggedIn) {
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.