https://ideabooks.albertvanderveen.nl/detail/1fdf3aceba95493a9085b0bf9ce157af

Exceptions

Elasticsearch server is not available

  • Exception
  • Logs
  • Stack Trace

Shopware\Elasticsearch\Exception\ ServerNotAvailableException

  1.         if (!$context->getUseCache()) {
  2.             return false;
  3.         }
  4.         if (!$this->client->ping()) {
  5.             return $this->logOrThrowException(new ServerNotAvailableException());
  6.         }
  7.         if ($this->hasIndexDocuments($definition$context)) {
  8.             return true;
  9.         }
  1.         $this->eventDispatcher $eventDispatcher;
  2.     }
  3.     public function search(EntityDefinition $definitionCriteria $criteriaContext $context): IdSearchResult
  4.     {
  5.         if (!$this->helper->allowSearch($definition$context)) {
  6.             return $this->decorated->search($definition$criteria$context);
  7.         }
  8.         $search $this->createSearch($criteria$definition$context);
  1.         $item $this->cache->getItem($key);
  2.         if ($item->isHit()) {
  3.             return $item->get();
  4.         }
  5.         $result $this->decorated->search($definition$criteria$context);
  6.         $item->set($result);
  7.         $tags $this->cacheKeyGenerator->getSearchTags($definition$criteria);
  8.         if (!$item instanceof CacheItem) {
  1.     {
  2.         $title $criteria->getTitle() ?? $definition->getEntityName();
  3.         $this->stopwatch->start('search:' $title);
  4.         $data $this->decorated->search($definition$criteria$context);
  5.         $this->stopwatch->stop('search:' $title);
  6.         return $data;
  7.     }
  1.         return $entities;
  2.     }
  3.     private function doSearch(Criteria $criteriaSalesChannelContext $salesChannelContext): IdSearchResult
  4.     {
  5.         $result $this->searcher->search($this->definition$criteria$salesChannelContext->getContext());
  6.         $event = new SalesChannelEntityIdSearchResultLoadedEvent($this->definition$result$salesChannelContext);
  7.         $this->eventDispatcher->dispatch($event$event->getName());
  8.         return $result;
  1.     {
  2.         $criteria = clone $criteria;
  3.         $this->processCriteria($criteria$salesChannelContext);
  4.         return $this->doSearch($criteria$salesChannelContext);
  5.     }
  6.     private function read(Criteria $criteriaSalesChannelContext $salesChannelContext): EntityCollection
  7.     {
  8.         $criteria = clone $criteria;
  1.             ->addFilter(new EqualsFilter('product.parentId'$productId))
  2.             ->addSorting(new FieldSorting('product.price'))
  3.             ->addSorting(new FieldSorting('product.available'))
  4.             ->setLimit(1);
  5.         $variantId $this->repository->searchIds($criteria$context);
  6.         if (\count($variantId->getIds()) > 0) {
  7.             return $variantId->getIds()[0];
  8.         }
  1.      * )
  2.      * @Route("/store-api/v{version}/product/{productId}", name="store-api.product.detail", methods={"POST"})
  3.      */
  4.     public function load(string $productIdRequest $requestSalesChannelContext $contextCriteria $criteria): ProductDetailRouteResponse
  5.     {
  6.         $productId $this->findBestVariant($productId$context);
  7.         $this->addFilters($context$criteria);
  8.         $criteria->setIds([$productId]);
  1.             // @deprecated tag:v6.4.0 - `ProductPageCriteriaEvent` or `MinimalQuickViewPageCriteriaEvent` will be dispatched in corresponding page loader classes
  2.             $instance = new $event($productId$criteria$salesChannelContext);
  3.             $this->eventDispatcher->dispatch($instance);
  4.         }
  5.         $result $this->productRoute->load($productId, new Request(), $salesChannelContext$criteria);
  6.         $result->getProduct()->setConfigurator(
  7.             $result->getConfigurator()
  8.         );
  1.         $productId $request->attributes->get('productId');
  2.         if (!$productId) {
  3.             throw new MissingRequestParameterException('productId''/productId');
  4.         }
  5.         $product $this->productLoader->load($productId$salesChannelContextProductPageCriteriaEvent::class);
  6.         $page->setProduct($product);
  7.         $page->setConfiguratorSettings($product->getConfigurator());
  8.         $request->request->set('parentId'$product->getParentId());
  9.         $reviews $this->productReviewLoader->load($request$salesChannelContext);
  1.      * @HttpCache()
  2.      * @Route("/detail/{productId}", name="frontend.detail.page", methods={"GET"})
  3.      */
  4.     public function index(SalesChannelContext $contextRequest $request): Response
  5.     {
  6.         $page $this->productPageLoader->load($request$context);
  7.         $ratingSuccess $request->get('success');
  8.         if (!Feature::isActive('FEATURE_NEXT_10078')) {
  9.             return $this->renderStorefront('@Storefront/storefront/page/product-detail/index.html.twig', ['page' => $page'ratingSuccess' => $ratingSuccess]);
  1.         $this->dispatcher->dispatch($eventKernelEvents::CONTROLLER_ARGUMENTS);
  2.         $controller $event->getController();
  3.         $arguments $event->getArguments();
  4.         // call controller
  5.         $response $controller(...$arguments);
  6.         // view
  7.         if (!$response instanceof Response) {
  8.             $event = new ViewEvent($this$request$type$response);
  9.             $this->dispatcher->dispatch($eventKernelEvents::VIEW);
  1.     public function handle(Request $request$type HttpKernelInterface::MASTER_REQUEST$catch true)
  2.     {
  3.         $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
  4.         try {
  5.             return $this->handleRaw($request$type);
  6.         } catch (\Exception $e) {
  7.             if ($e instanceof RequestExceptionInterface) {
  8.                 $e = new BadRequestHttpException($e->getMessage(), $e);
  9.             }
  10.             if (false === $catch) {
  1.         $this->boot();
  2.         ++$this->requestStackSize;
  3.         $this->resetServices true;
  4.         try {
  5.             return $this->getHttpKernel()->handle($request$type$catch);
  6.         } finally {
  7.             --$this->requestStackSize;
  8.         }
  9.     }
  1.             && $container->getParameter('shopware.http.cache.enabled');
  2.         if ($enabled) {
  3.             $kernel = new HttpCache($kernel$container->get(CacheStore::class), null, ['debug' => $this->debug]);
  4.         }
  5.         $response $kernel->handle($transformed$type$catch);
  6.         // fire event to trigger runtime events like seo url headers
  7.         $event = new BeforeSendResponseEvent($transformed$response);
  8.         $container->get('event_dispatcher')->dispatch($event);
in vendor/shopware/core/HttpKernel.php -> doHandle (line 80)
  1.     }
  2.     public function handle(Request $request$type HttpKernelInterface::MASTER_REQUEST$catch true): HttpKernelResult
  3.     {
  4.         try {
  5.             return $this->doHandle($request, (int) $type, (bool) $catch);
  6.         } catch (DBALException $e) {
  7.             $connectionParams self::getConnection()->getParams();
  8.             $message str_replace([$connectionParams['url'], $connectionParams['password'], $connectionParams['user']], '******'$e->getMessage());
HttpKernel->handle() in public/index.php (line 86)
  1. }
  2. $request Request::createFromGlobals();
  3. $kernel = new HttpKernel($appEnv$debug$classLoader);
  4. $result $kernel->handle($request);
  5. $result->getResponse()->send();
  6. $kernel->terminate($result->getRequest(), $result->getResponse());