Hi,
I am looking for help regarding an installed module on my website that is giving me a lot of problems.
I installed it a while ago but I am not using it on my website. The last time there was a security update, I received a notification that the security update of my site had failed because of this module so I uninstalled it.
However, for this last security update of my site, I have again received a failure notification because of this module. Since then, I haven’t been able to log in so I can’t operate on my website.:
Is there something I can do without being able to access my website and try to fix this?
Thank you in advance,
Ana
Hi Ana,
I believe the fact that you used “contact_storage” in the past has persisted the problem in the database.
Notice the mention of a route at the top of the error message:
Symfony\Component\Routing\Exception\InvalidParameterException: Parameter "contact_form" for route "entity.contact_form.edit_form" must match "[^/]++" ("" given) to generate a corresponding URL. in Drupal\Core\Routing\UrlGenerator->doGenerate() (line 204 of core/lib/Drupal/Core/Routing/UrlGenerator.php).
Drupal\Core\Routing\UrlGenerator->getInternalPathFromRoute('entity.contact_form.edit_form', Object, Array) (Line: 133)
Drupal\Core\Routing\UrlGenerator->getPathFromRoute('entity.contact_form.edit_form', Array) (Line: 68)
Drupal\Core\Render\MetadataBubblingUrlGenerator->getPathFromRoute('entity.contact_form.edit_form', Array) (Line: 799)
Drupal\Core\Url->getInternalPath() (Line: 136)
From the displayed error message I can tell you where this route “entity.contact_form.edit_form” is mentioned in the Drupal code:
[drupal-code]$ grep -rne 'entity.contact_form.edit_form'
core/modules/contact/contact.links.task.yml:1:entity.contact_form.edit_form:
core/modules/contact/contact.links.task.yml:3: route_name: entity.contact_form.edit_form
core/modules/contact/contact.links.task.yml:4: base_route: entity.contact_form.edit_form
core/modules/contact/contact.routing.yml:25:entity.contact_form.edit_form:
core/modules/contact/src/Entity/Message.php:39: * field_ui_base_route = "entity.contact_form.edit_form",
core/modules/contact/tests/src/Functional/ContactSitewideTest.php:120: ':href' => Url::fromRoute('entity.contact_form.edit_form', ['contact_form' => 'personal'])->toString(),
What I would do from this point on is to try and understand where in the database the route is mentioned and maybe edit the parameter “contact_form” if such a field exists.
This is a very dangerous action. You are never supposed to touch the application’s database directly, but I can’t think of another way forward from the present broken state.
I would do the following in your case:
- Clone to my dev site so I can experiment without breaking further the live site
- Understand how routes are modelled in the DB
- Experiment with changes
- If I fix the problem, verify that I didn’t break anything else
- Perform the same change on the live site
Hi @kosamara,
I think this would be possible to fix via Drush, by maybe deleting this configuration completely. At least I would try this before going commando on the DB
I guess @asujaluc you could clone your broken site into a new test
one, then follow the instructions to run Drush on it and trying to delete the offending configuration (entity.contact_form.edit_form
).
Here’s some info about such Drush command, if you feel adventurous: https://drushcommands.com/drush-8x/config/config-delete/
And you would normally use Docker to be able to run Drush on your test site, via an image provided by our Drupal Infra overlords (). Instructions can be found under <your-test-site>.web.cern.ch/_site/drush.php
.
Let me know if you get stuck!
Regards,
Óscar
That would be wonderful!
Do you see the relevant configuration though? In my basic investigation I couldn’t identify any relevant configuration that has to do either with “route”, “entity” or “contact”.
entity.contact_form.edit_form
or anything similar for example doesn’t appear on drush config-list
.
Note that the error message refers to this as a “route”. I don’t know Drupal’s internals well enough to understand the meaning of “route” though. @ogomezal do you have any hint?
You are right, this route seems a Drupal core thing. I don’t know how this module could mess up so badly…
Well, I googled a bit and couldn’t find anything specific related to Contact Storage which is the module we suspect is causing the issue, so I suggest trying this generic ‘reinstall module, then uninstall again’ approach: https://www.drupal.org/project/contact_storage/issues/3028830
In any case a clone of the site to a test one is needed so we can use Drush, since the site is now unusable.
Regards,
Óscar