Address "passing null to parameter of type string" error when frontend host is left empty

Created on 4 October 2023, 9 months ago
Updated 18 October 2023, 8 months ago

Problem/Motivation

I'm seeing this error in logs.

Deprecated function: parse_url(): Passing null to parameter #1 ($url) of type string is deprecated in lupus_decoupled_ce_api_trusted_redirect_hosts_alter() (Zeile 18 in /app/web/modules/contrib/lupus_decoupled/modules/lupus_decoupled_ce_api/lupus_decoupled_ce_api.module)

#0 /app/web/core/includes/bootstrap.inc(158): _drupal_error_handler_real(8192, 'parse_url(): Pa...', '/app/web/module...', 18)
#1 [internal function]: _drupal_error_handler(8192, 'parse_url(): Pa...', '/app/web/module...', 18)
#2 /app/web/modules/contrib/lupus_decoupled/modules/lupus_decoupled_ce_api/lupus_decoupled_ce_api.module(18): parse_url(NULL, 1)
#3 /app/web/core/lib/Drupal/Core/Extension/ModuleHandler.php(545): lupus_decoupled_ce_api_trusted_redirect_hosts_alter(Array, NULL, NULL)
#4 /app/web/modules/contrib/trusted_redirect/src/TrustedRedirectHelpersTrait.php(97): Drupal\Core\Extension\ModuleHandler->alter('trusted_redirec...', Array)
#5 /app/web/modules/contrib/trusted_redirect/src/TrustedRedirectHelpersTrait.php(112): Drupal\trusted_redirect\EventSubscriber\TrustedRedirectSubscriber->getTrustedHosts()
#6 /app/web/modules/contrib/trusted_redirect/src/EventSubscriber/TrustedRedirectSubscriber.php(50): Drupal\trusted_redirect\EventSubscriber\TrustedRedirectSubscriber->isTrustedUrl('/user/login?des...')
#7 [internal function]: Drupal\trusted_redirect\EventSubscriber\TrustedRedirectSubscriber->onRespondRedirectToTrustedHost(Object(Symfony\Component\HttpKernel\Event\ResponseEvent), 'kernel.response', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher))
#8 /app/web/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(111): call_user_func(Array, Object(Symfony\Component\HttpKernel\Event\ResponseEvent), 'kernel.response', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher))
#9 /app/vendor/symfony/http-kernel/HttpKernel.php(196): Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object(Symfony\Component\HttpKernel\Event\ResponseEvent), 'kernel.response')
#10 /app/vendor/symfony/http-kernel/HttpKernel.php(142): Symfony\Component\HttpKernel\HttpKernel->filterResponse(Object(Symfony\Component\HttpFoundation\RedirectResponse), Object(Symfony\Component\HttpFoundation\Request), 1)
#11 /app/vendor/symfony/http-kernel/HttpKernel.php(74): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#12 /app/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#13 /app/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#14 /app/web/modules/drunomics/ldp-cp/modules/ldp_cp_api/src/LdpCpApiLanguageRequestMiddleware.php(95): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#15 /app/web/modules/contrib/lupus_decoupled/modules/lupus_decoupled_ce_api/src/BackendApiRequest.php(102): Drupal\ldp_cp_api\LdpCpApiLanguageRequestMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#16 /app/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(191): Drupal\lupus_decoupled_ce_api\BackendApiRequest->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#17 /app/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(128): Drupal\page_cache\StackMiddleware\PageCache->fetch(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#18 /app/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(82): Drupal\page_cache\StackMiddleware\PageCache->lookup(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#19 /app/web/modules/drunomics/ldp-core/modules/ldp_cdn/src/BunnyCDNHostProvider.php(52): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#20 /app/vendor/asm89/stack-cors/src/Cors.php(53): Drupal\ldp_cdn\BunnyCDNHostProvider->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#21 /app/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Asm89\Stack\Cors->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#22 /app/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#23 /app/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#24 /app/web/core/lib/Drupal/Core/DrupalKernel.php(692): Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#25 /app/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#26 {main}

In web/modules/contrib/lupus_decoupled/modules/lupus_decoupled_ce_api/lupus_decoupled_ce_api.module

function lupus_decoupled_ce_api_trusted_redirect_hosts_alter(array &$trusted_hosts) {
  $frontend_base_urls = \Drupal::service('lupus_decoupled_ce_api.base_url_provider')
    ->getAllFrontendBaseUrls();
  foreach ($frontend_base_urls as $frontend_base_url) {
    $trusted_hosts[] = parse_url($frontend_base_url, PHP_URL_HOST);
  }
}

We should just add a check.

🐛 Bug report
Status

Fixed

Version

1.0

Component

Code

Created by

🇸🇮Slovenia useernamee Ljubljana

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.69.0 2024