Closing this, please open a support request for CSE to investigate if you still experiencing this issues. A new version of Search API Pantheon also has been released, please upgrade to the version 8.2.1 and let us know.
Pantheon just released Search API Pantheon module version 8.2.0 that should mitigate the reverts issue and also adds automatic core reloads after schema updates. This is also expected customers to post custom Solr schema without the interventions of CSE.
Pantheon customers can test the module and the incident has been moved to monitoring.
I will move this issue queue to "needs review"
This is now an incident that is being work on by Pantheon engineers https://status.pantheon.io/incidents/rv8bw0v6rbjy hoping to be resolve soon.
Here is the latest update for the issue on this thread, from the Pantheon Platform engineers.
The root cause of this issue of Solr Schema reversion to default (4.2.10) comes from upgrades and migrating of cores. Migrating should preserve the schema (and other config files), but there is an edge case where a new core is created with the old schema (our default).
Platform engineers are already tracking this internally and working on the prevention.
If in case this happens to customer sites, go to the Search API Pantheon Admin page and repost the Solr Schema, wait for at least 5 minutes for the configuration to take effect (Pantheon platform is checking every 5 minutes if there is an update in Solr Schema and then will issue a reload), then reset the tracker (run drush sapi-rt
) and re-index the site (drush sapi-i
).
Alternatively, if in case you are not able to update the Solr Schema, open a ticket and a member of the Technical Support Team will attend to it.
Hi Binny,
Can you inspect your composer.json files, I believe you are still using Search API Pantheon version 3.
If you see this:
"drupal/search_api_pantheon": "^8.1",
"pantheon-systems/search_api_pantheon": "^3.0",
Please remove the version 3 "pantheon-systems/search_api_pantheon": "^3.0",
@kwiseman have you opened a support ticket already? For newly created multidev, it will use the default 4.2.10 Solr Schema and will need reposting.
Changing the status of this issue to "Postponed" until the reporter try and test if the stale content is related to Solr cache or just a normal views page cache.
Hi @tripodcreative can you please update us if this issue has already been resolved, this thread is active for more than a year already and the latest version of the module is already in version 8.1.9
Thanks
From the statement "The only way to get the new content is to clear all caches" this looks like an issue with the Drupal page or views cache rather than the Solr index cache, but yes, as Damien mentioned in the earlier comment, Solr does not index automatically, it will wait until a cron runs which is configured in Pantheon platform to run every hour.
To test if the stale content is related to the Solr index cache, after step 4 -> Unpublish one node that is rendered by the view, please run a manual re-index and if the stale content disappears, then this is related to the Solr index cache, but if not, then you must check the views page cache.
Agreed, this has been fixed and should be close
@dorficus You are correct. The default Solr schema in Pantheon platform was set to 4.2.10, currently reposting of Solr Schema on Pantheon was broken (Sticky Solr Schema bug)
If you want your custom config to take affect, what you need to do right now is to open a ticket and let the CSE or the platform engineers reposted the config for you in the affected environments.
Bumping this up, this is still happening as it seems the default Solr Schema template of Pantheon containers is using Solr Schema 4.2 and that's the reason why creating a new multidev environment is installed with Solr Schema 4.2 instead of the Solr Schema provided by the search_api_solr module.
Not sure if there is a plan to update the default Solr Schema, or at least fix the reposting of Solr Schema.
Attached screenshot of what needs to be updated, this should be an easy fix for maintainer with edit access to the module page description.
Following up on this, I think this is a quick fix, just need to update the link to point to https://github.com/pantheon-systems/search_api_pantheon/wiki/TROUBLESHOOTING-INDICES
This is a 2 years old issue, the reporter already stated in the comment #8 that this is already fixed in the beta6 release. I'll set the status of this issue to Fixed because of this.
The steps given above actually work in Pantheon because the disabling and enabling of the search API Solr server removes all the data in the disk or in Pantheon Solr backend, this is true with the Drupal CMS setup with a Single search API Solr server and a Single index ID.
In the case of a complex setup where the site is using multiple Search API Solr servers (Multiple Solr Server IDs) with multiple Index items assigned for each Search API Solr server, there is a need to use the module search_api_solr_devel and then use the Drush command that comes with it just like this in case the Server ID is named pantheon_solr
drush search-api-solr:devel-delete-all pantheon_solr
This needs to be executed before step number 3 or reloading of the Solr core.
@mkalkbrenner I'm following up on Alexander's inquiries as to how we can config the previous behavior. I believe the latest changes that ship with 4.3.0 do not work nicely with sites on Pantheon as the indexing becomes very very slow since the site has been upgraded into search_api_solr 4.3.0
Would you mind pointing us to documentation where we can configure it?
Also experiencing this error on Webform submission. Here's the complete stack trace, PHP 8.1 and Drupal 9.5.9 combo
TypeError: htmlspecialchars(): Argument #1 ($string) must be of type string, array given in /code/web/core/lib/Drupal/Component/Utility/Html.php on line 432 #0 /code/web/core/lib/Drupal/Component/Utility/Html.php(432): htmlspecialchars(Array, 11, 'UTF-8')
#1 /code/web/core/lib/Drupal/Component/Render/FormattableMarkup.php(270): Drupal\Component\Utility\Html::escape(Array)
#2 /code/web/core/lib/Drupal/Component/Render/FormattableMarkup.php(216): Drupal\Component\Render\FormattableMarkup::placeholderEscape(Array)
#3 /code/web/core/lib/Drupal/Core/StringTranslation/TranslatableMarkup.php(195): Drupal\Component\Render\FormattableMarkup::placeholderFormat('Success [@tx_id...', Array)
#4 /code/web/core/lib/Drupal/Component/Utility/ToStringTrait.php(15): Drupal\Core\StringTranslation\TranslatableMarkup->render()
#5 /code/web/modules/contrib/elastic_email/src/Plugin/Mail/ElasticEmailMailSystem.php(315): Drupal\Core\StringTranslation\TranslatableMarkup->__toString()
#6 /code/web/modules/contrib/elastic_email/src/Plugin/Mail/ElasticEmailMailSystem.php(139): Drupal\elastic_email\Plugin\Mail\ElasticEmailMailSystem->send(Array)
#7 /code/web/modules/contrib/mailsystem/src/Adapter.php(50): Drupal\elastic_email\Plugin\Mail\ElasticEmailMailSystem->mail(Array)
#8 /code/web/core/lib/Drupal/Core/Mail/MailManager.php(307): Drupal\mailsystem\Adapter->mail(Array)
#9 /code/web/core/lib/Drupal/Core/Mail/MailManager.php(180): Drupal\Core\Mail\MailManager->doMail('webform', 'contact_email_s...', 'redacted@email.com,...', 'en', Array, 'redacted@email.c...', true)
#10 /code/web/core/lib/Drupal/Core/Render/Renderer.php(580): Drupal\Core\Mail\MailManager->Drupal\Core\Mail\{closure}()
#11 /code/web/core/lib/Drupal/Core/Mail/MailManager.php(181): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
#12 /code/web/modules/contrib/mailsystem/src/MailsystemManager.php(70): Drupal\Core\Mail\MailManager->mail('webform', 'contact_email_s...', 'redacted@email.com,...', 'en', Array, 'edacted@email.c...', true)
#13 /code/web/modules/contrib/webform/src/Plugin/WebformHandler/EmailWebformHandler.php(1167): Drupal\mailsystem\MailsystemManager->mail('webform', 'contact_email_s...', 'redacted@email.com,...', 'en', Array, 'redacted@email.c...')
#14 /code/web/modules/contrib/webform/src/Plugin/WebformHandler/EmailWebformHandler.php(859): Drupal\webform\Plugin\WebformHandler\EmailWebformHandler->sendMessage(Object(Drupal\webform\Entity\WebformSubmission), Array)
#15 /code/web/modules/contrib/webform/src/Entity/Webform.php(2758): Drupal\webform\Plugin\WebformHandler\EmailWebformHandler->postSave(Object(Drupal\webform\Entity\WebformSubmission), false, NULL)
#16 /code/web/modules/contrib/webform/src/WebformSubmissionStorage.php(1212): Drupal\webform\Entity\Webform->invokeHandlers('postSave', Object(Drupal\webform\Entity\WebformSubmission), false, NULL)
#17 /code/web/modules/contrib/webform/src/WebformSubmissionStorage.php(1120): Drupal\webform\WebformSubmissionStorage->invokeWebformHandlers('postSave', Object(Drupal\webform\Entity\WebformSubmission), false)
#18 /code/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(523): Drupal\webform\WebformSubmissionStorage->doPostSave(Object(Drupal\webform\Entity\WebformSubmission), false)
#19 /code/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php(804): Drupal\Core\Entity\EntityStorageBase->save(Object(Drupal\webform\Entity\WebformSubmission))
#20 /code/web/modules/contrib/webform/src/WebformSubmissionStorage.php(983): Drupal\Core\Entity\Sql\SqlContentEntityStorage->save(Object(Drupal\webform\Entity\WebformSubmission))
#21 /code/web/core/lib/Drupal/Core/Entity/EntityBase.php(339): Drupal\webform\WebformSubmissionStorage->save(Object(Drupal\webform\Entity\WebformSubmission))
#22 /code/web/modules/contrib/webform/src/Entity/WebformSubmission.php(901): Drupal\Core\Entity\EntityBase->save()
#23 /code/web/modules/contrib/webform/src/WebformSubmissionForm.php(1995): Drupal\webform\Entity\WebformSubmission->save()
#24 [internal function]: Drupal\webform\WebformSubmissionForm->save(Array, Object(Drupal\Core\Form\FormState))
#25 /code/web/core/lib/Drupal/Core/Form/FormSubmitter.php(114): call_user_func_array(Array, Array)
#26 /code/web/core/lib/Drupal/Core/Form/FormSubmitter.php(52): Drupal\Core\Form\FormSubmitter->executeSubmitHandlers(Array, Object(Drupal\Core\Form\FormState))
#27 /code/web/core/lib/Drupal/Core/Form/FormBuilder.php(597): Drupal\Core\Form\FormSubmitter->doSubmitForm(Array, Object(Drupal\Core\Form\FormState))
#28 /code/web/core/lib/Drupal/Core/Form/FormBuilder.php(325): Drupal\Core\Form\FormBuilder->processForm('webform_submiss...', Array, Object(Drupal\Core\Form\FormState))
#29 /code/web/core/lib/Drupal/Core/Entity/EntityFormBuilder.php(48): Drupal\Core\Form\FormBuilder->buildForm(Object(Drupal\webform\WebformSubmissionForm), Object(Drupal\Core\Form\FormState))
#30 /code/web/modules/contrib/webform/src/Entity/Webform.php(1250): Drupal\Core\Entity\EntityFormBuilder->getForm(Object(Drupal\webform\Entity\WebformSubmission), 'add')
#31 /code/web/modules/contrib/webform/src/Element/Webform.php(103): Drupal\webform\Entity\Webform->getSubmissionForm(Array)
#32 [internal function]: Drupal\webform\Element\Webform::preRenderWebformElement(Array)
#33 /code/web/core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php(101): call_user_func_array(Array, Array)
#34 /code/web/core/lib/Drupal/Core/Render/Renderer.php(788): Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_ren...', 'exception', 'Drupal\\Core\\Ren...')
#35 /code/web/core/lib/Drupal/Core/Render/Renderer.php(374): Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array)
#36 /code/web/core/lib/Drupal/Core/Render/Renderer.php(204): Drupal\Core\Render\Renderer->doRender(Array, false)
#37 /code/web/core/lib/Drupal/Core/Template/TwigExtension.php(479): Drupal\Core\Render\Renderer->render(Array)
#38 /tmp/rolling/live_162/twig/645308e6acf0e_block--webform-block.html_14Ji2JzKax0tH_cjLXHAP10K2/KTVmtGHDAJmn5DSe0XSwosTZuppZDa9NcxyEfBivnKs.php(83): Drupal\Core\Template\TwigExtension->escapeFilter(Object(Drupal\Core\Template\TwigEnvironment), Array, 'html', NULL, true)
#39 /code/vendor/twig/twig/src/Template.php(182): __TwigTemplate_47ebe4508918a9b31dce810a9cd05a22->block_content(Array, Array)
#40 /tmp/rolling/live_162/twig/645308e6acf0e_block--webform-block.html_14Ji2JzKax0tH_cjLXHAP10K2/KTVmtGHDAJmn5DSe0XSwosTZuppZDa9NcxyEfBivnKs.php(71): Twig\Template->displayBlock('content', Array, Array)
#41 /code/vendor/twig/twig/src/Template.php(405): __TwigTemplate_47ebe4508918a9b31dce810a9cd05a22->doDisplay(Array, Array)
#42 /code/vendor/twig/twig/src/Template.php(378): Twig\Template->displayWithErrorHandling(Array, Array)
#43 /code/vendor/twig/twig/src/Template.php(390): Twig\Template->display(Array)
#44 /code/web/core/themes/engines/twig/twig.engine(55): Twig\Template->render(Array)
#45 /code/web/core/lib/Drupal/Core/Theme/ThemeManager.php(384): twig_render_template('themes/custom/r...', Array)
#46 /code/web/core/lib/Drupal/Core/Render/Renderer.php(433): Drupal\Core\Theme\ThemeManager->render('block', Array)
#47 /code/web/core/lib/Drupal/Core/Render/Renderer.php(446): Drupal\Core\Render\Renderer->doRender(Array)
#48 /code/web/core/lib/Drupal/Core/Render/Renderer.php(204): Drupal\Core\Render\Renderer->doRender(Array, false)
#49 /code/web/core/lib/Drupal/Core/Template/TwigExtension.php(479): Drupal\Core\Render\Renderer->render(Array)
#50 /tmp/rolling/live_162/twig/645308e6acf0e_page.html.twig_TaxOXADBnVGcSkC0Q6YxwsyKV/jHnaxx7_zJtSiKxc1karbanVfzFitq7i39O9GCeIdm4.php(203): Drupal\Core\Template\TwigExtension->escapeFilter(Object(Drupal\Core\Template\TwigEnvironment), Array, 'html', NULL, true)
#51 /code/vendor/twig/twig/src/Template.php(182): __TwigTemplate_934bfbe79b0c3edfc95e3a9ac498c495->block_layout_content(Array, Array)
#52 /tmp/rolling/live_162/twig/645308e6acf0e_page.html.twig_TaxOXADBnVGcSkC0Q6YxwsyKV/jHnaxx7_zJtSiKxc1karbanVfzFitq7i39O9GCeIdm4.php(149): Twig\Template->displayBlock('layout_content', Array, Array)
#53 /code/vendor/twig/twig/src/Template.php(182): __TwigTemplate_934bfbe79b0c3edfc95e3a9ac498c495->block_replaceable(Array, Array)
#54 /tmp/rolling/live_162/twig/645308e6acf0e_page.html.twig_TaxOXADBnVGcSkC0Q6YxwsyKV/jHnaxx7_zJtSiKxc1karbanVfzFitq7i39O9GCeIdm4.php(78): Twig\Template->displayBlock('replaceable', Array, Array)
#55 /code/vendor/twig/twig/src/Template.php(405): __TwigTemplate_934bfbe79b0c3edfc95e3a9ac498c495->doDisplay(Array, Array)
#56 /code/vendor/twig/twig/src/Template.php(378): Twig\Template->displayWithErrorHandling(Array, Array)
#57 /code/vendor/twig/twig/src/Template.php(390): Twig\Template->display(Array)
#58 /code/web/core/themes/engines/twig/twig.engine(55): Twig\Template->render(Array)
#59 /code/web/core/lib/Drupal/Core/Theme/ThemeManager.php(384): twig_render_template('themes/custom/r...', Array)
#60 /code/web/core/lib/Drupal/Core/Render/Renderer.php(433): Drupal\Core\Theme\ThemeManager->render('page', Array)
#61 /code/web/core/lib/Drupal/Core/Render/Renderer.php(204): Drupal\Core\Render\Renderer->doRender(Array, false)
#62 /code/web/core/lib/Drupal/Core/Template/TwigExtension.php(479): Drupal\Core\Render\Renderer->render(Array)
#63 /tmp/rolling/live_162/twig/645308e6acf0e_html.html.twig_OuTMSG2355Bih5WfMUP7t6tew/7FmXiPU40CpoO33XKL_vTleMn90taEa_Ed6BDuXmwEw.php(114): Drupal\Core\Template\TwigExtension->escapeFilter(Object(Drupal\Core\Template\TwigEnvironment), Array, 'html', NULL, true)
#64 /code/vendor/twig/twig/src/Template.php(405): __TwigTemplate_5e5dbdb2ca1560371422b85a63b06877->doDisplay(Array, Array)
#65 /code/vendor/twig/twig/src/Template.php(378): Twig\Template->displayWithErrorHandling(Array, Array)
#66 /code/vendor/twig/twig/src/Template.php(390): Twig\Template->display(Array)
#67 /code/web/core/themes/engines/twig/twig.engine(55): Twig\Template->render(Array)
#68 /code/web/core/lib/Drupal/Core/Theme/ThemeManager.php(384): twig_render_template('themes/custom/r...', Array)
#69 /code/web/core/lib/Drupal/Core/Render/Renderer.php(433): Drupal\Core\Theme\ThemeManager->render('html', Array)
#70 /code/web/core/lib/Drupal/Core/Render/Renderer.php(204): Drupal\Core\Render\Renderer->doRender(Array, false)
#71 /code/web/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(162): Drupal\Core\Render\Renderer->render(Array)
#72 /code/web/core/lib/Drupal/Core/Render/Renderer.php(580): Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}()
#73 /code/web/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(163): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
#74 /code/web/core/lib/Drupal/Core/EventSubscriber/MainContentViewSubscriber.php(90): Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\CurrentRouteMatch))
#75 [internal function]: Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object(Symfony\Component\HttpKernel\Event\ViewEvent), 'kernel.view', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher))
#76 /code/web/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(142): call_user_func(Array, Object(Symfony\Component\HttpKernel\Event\ViewEvent), 'kernel.view', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher))
#77 /code/vendor/symfony/http-kernel/HttpKernel.php(174): Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object(Symfony\Component\HttpKernel\Event\ViewEvent), 'kernel.view')
#78 /code/vendor/symfony/http-kernel/HttpKernel.php(81): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#79 /code/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#80 /code/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#81 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#82 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#83 /code/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#84 /code/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#85 /code/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#86 /code/web/core/lib/Drupal/Core/DrupalKernel.php(718): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#87 /code/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#88 {main}