Error 404 Not Found

POST https://www.pen4u.de/api/_action/paypal/webhook/execute?sw-token=6lBsmsHMjTOIOmc6GOoYZhUtKzRBqWDM

Exceptions

No route found for "POST https://www.pen4u.de/api/_action/paypal/webhook/execute"

Symfony\Component\HttpKernel\Exception\ NotFoundHttpException

Show exception properties
0 of 0
Symfony\Component\HttpKernel\Exception\NotFoundHttpException {#1391 â–¼ -statusCode: 404 -headers: [] }
  1. if ($referer = $request->headers->get('referer')) {
  2. $message .= \sprintf(' (from "%s")', $referer);
  3. }
  4. throw new NotFoundHttpException($message, $e);
  5. } catch (MethodNotAllowedException $e) {
  6. $message = \sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getUriForPath($request->getPathInfo()), implode(', ', $e->getAllowedMethods()));
  7. throw new MethodNotAllowedHttpException($e->getAllowedMethods(), $message, $e);
  8. }
  1. $this->priority ??= $dispatcher->getListenerPriority($eventName, $this->listener);
  2. $e = $this->stopwatch->start($this->name, 'event_listener');
  3. try {
  4. ($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher);
  5. } finally {
  6. if ($e->isStarted()) {
  7. $e->stop();
  8. }
  9. }
  1. foreach ($listeners as $listener) {
  2. if ($stoppable && $event->isPropagationStopped()) {
  3. break;
  4. }
  5. $listener($event, $eventName, $this);
  6. }
  7. }
  8. /**
  9. * Sorts the internal list of listeners for the given event by priority.
  1. } else {
  2. $listeners = $this->getListeners($eventName);
  3. }
  4. if ($listeners) {
  5. $this->callListeners($listeners, $eventName, $event);
  6. }
  7. return $event;
  8. }
  1. *
  2. * @return TEvent
  3. */
  4. public function dispatch(object $event, ?string $eventName = null): object
  5. {
  6. $event = $this->dispatcher->dispatch($event, $eventName);
  7. if (!$event instanceof FlowEventAware) {
  8. return $event;
  9. }
  1. ) {
  2. }
  3. public function dispatch(object $event, ?string $eventName = null): object
  4. {
  5. $event = $this->dispatcher->dispatch($event, $eventName);
  6. // @deprecated tag:v6.7.0 - remove DISABLE_EXTENSIONS from if condition
  7. if (EnvironmentHelper::getVariable('DISABLE_EXTENSIONS', false) || !HookableEventFactory::isHookable($event)) {
  8. return $event;
  9. }
  1. }
  2. $this->dispatch($nested, $name);
  3. }
  4. }
  5. return $this->dispatcher->dispatch($event, $eventName);
  6. }
  7. /**
  8. * @param callable $listener can not use native type declaration @see https://github.com/symfony/symfony/issues/42283
  9. */
  1. try {
  2. $this->beforeDispatch($eventName, $event);
  3. try {
  4. $e = $this->stopwatch->start($eventName, 'section');
  5. try {
  6. $this->dispatcher->dispatch($event, $eventName);
  7. } finally {
  8. if ($e->isStarted()) {
  9. $e->stop();
  10. }
  11. }
  1. */
  2. private function handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response
  3. {
  4. // request
  5. $event = new RequestEvent($this, $request, $type);
  6. $this->dispatcher->dispatch($event, KernelEvents::REQUEST);
  7. if ($event->hasResponse()) {
  8. return $this->filterResponse($event->getResponse(), $request, $type);
  9. }
  1. $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
  2. $this->requestStack->push($request);
  3. $response = null;
  4. try {
  5. return $response = $this->handleRaw($request, $type);
  6. } catch (\Throwable $e) {
  7. if ($e instanceof \Error && !$this->handleAllThrowables) {
  8. throw $e;
  9. }
  1. $this->dispatcher->dispatch($event);
  2. return $event->getResponse();
  3. }
  4. return parent::handle($request, $type, $catch);
  5. }
  6. }
  1. if (!IpUtils::checkIp('127.0.0.1', $trustedProxies)) {
  2. Request::setTrustedProxies(array_merge($trustedProxies, ['127.0.0.1']), Request::getTrustedHeaderSet());
  3. }
  4. try {
  5. return $kernel->handle($request, $type, $catch);
  6. } finally {
  7. // restore global state
  8. Request::setTrustedProxies($trustedProxies, $trustedHeaderSet);
  9. }
  10. }
  1. protected function forward(Request $request, bool $catch = false, ?Response $entry = null): Response
  2. {
  3. $this->surrogate?->addSurrogateCapability($request);
  4. // always a "master" request (as the real master request can be in cache)
  5. $response = SubRequestHandler::handle($this->kernel, $request, HttpKernelInterface::MAIN_REQUEST, $catch);
  6. /*
  7. * Support stale-if-error given on Responses or as a config option.
  8. * RFC 7234 summarizes in Section 4.2.4 (but also mentions with the individual
  9. * Cache-Control directives) that
  1. */
  2. protected function pass(Request $request, bool $catch = false): Response
  3. {
  4. $this->record($request, 'pass');
  5. return $this->forward($request, $catch);
  6. }
  7. /**
  8. * Invalidates non-safe methods (like POST, PUT, and DELETE).
  9. *
  1. *
  2. * @see RFC2616 13.10
  3. */
  4. protected function invalidate(Request $request, bool $catch = false): Response
  5. {
  6. $response = $this->pass($request, $catch);
  7. // invalidate only when the response is successful
  8. if ($response->isSuccessful() || $response->isRedirect()) {
  9. try {
  10. $this->store->invalidate($request);
  1. }
  2. $this->traces[$this->getTraceKey($request)] = [];
  3. if (!$request->isMethodSafe()) {
  4. $response = $this->invalidate($request, $catch);
  5. } elseif ($request->headers->has('expect') || !$request->isMethodCacheable()) {
  6. $response = $this->pass($request, $catch);
  7. } elseif ($this->options['allow_reload'] && $request->isNoCache()) {
  8. /*
  9. If allow_reload is configured and the client requests "Cache-Control: no-cache",
  1. // only handle main request inside http cache, because ESI tags are also interpreted as main request.
  2. // sub requests are requests, which are forwarded to the kernel inside the php stack
  3. // https://github.com/symfony/symfony/issues/51648#issuecomment-1717846894
  4. if ($type === HttpKernelInterface::MAIN_REQUEST) {
  5. $response = parent::handle($request, $type, $catch);
  6. } elseif ($request->attributes->has('_sw_esi')) {
  7. $response = parent::handle($request, $type, $catch);
  8. } else {
  9. $response = $this->getKernel()->handle($request, $type, $catch);
  10. }
in vendor/shopware/core/Kernel.php -> handle (line 156)
  1. {
  2. if (!$this->booted) {
  3. $this->boot();
  4. }
  5. return $this->getHttpKernel()->handle($request, $type, $catch);
  6. }
  7. public function boot(): void
  8. {
  9. if ($this->booted === true) {
  1. ) {
  2. }
  3. public function run(): int
  4. {
  5. $response = $this->kernel->handle($this->request);
  6. if (Kernel::VERSION_ID >= 60400) {
  7. $response->send(false);
  8. if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in vendor/autoload_runtime.php -> run (line 29)
  1. $app = $app(...$args);
  2. exit(
  3. $runtime
  4. ->getRunner($app)
  5. ->run()
  6. );
require_once('/var/www/vhosts/pen4you.de/httpdocs_pen4u.de/vendor/autoload_runtime.php') in public/index.php (line 10)
  1. use Shopware\Core\Installer\InstallerKernel;
  2. use Shopware\Core\Framework\Adapter\Kernel\KernelFactory;
  3. $_SERVER['SCRIPT_FILENAME'] = __FILE__;
  4. require_once __DIR__ . '/../vendor/autoload_runtime.php';
  5. if (!file_exists(__DIR__ . '/../.env') && !file_exists(__DIR__ . '/../.env.dist') && !file_exists(__DIR__ . '/../.env.local.php')) {
  6. $_SERVER['APP_RUNTIME_OPTIONS']['disable_dotenv'] = true;
  7. }

Symfony\Component\Routing\Exception\ ResourceNotFoundException

No routes found for "/api/_action/paypal/webhook/execute".

  1. if ($allowSchemes) {
  2. goto redirect_scheme;
  3. }
  4. }
  5. throw new ResourceNotFoundException(\sprintf('No routes found for "%s".', $pathinfo));
  6. }
  7. private function doMatch(string $pathinfo, array &$allow = [], array &$allowSchemes = []): array
  8. {
  9. $allow = $allowSchemes = [];
  1. public function matchRequest(Request $request): array
  2. {
  3. $this->request = $request;
  4. $ret = $this->match($request->getPathInfo());
  5. $this->request = null;
  6. return $ret;
  7. }
in vendor/symfony/routing/Router.php -> matchRequest (line 188)
  1. if (!$matcher instanceof RequestMatcherInterface) {
  2. // fallback to the default UrlMatcherInterface
  3. return $matcher->match($request->getPathInfo());
  4. }
  5. return $matcher->matchRequest($request);
  6. }
  7. /**
  8. * Gets the UrlMatcher or RequestMatcher instance associated with this Router.
  9. */
  1. * @return array<mixed>
  2. */
  3. public function matchRequest(Request $request): array
  4. {
  5. if (!$request->attributes->has(PlatformRequest::ATTRIBUTE_SALES_CHANNEL_ID)) {
  6. return $this->decorated->matchRequest($request);
  7. }
  8. $server = array_merge(
  9. $request->server->all(),
  10. ['REQUEST_URI' => $request->attributes->get(RequestTransformer::SALES_CHANNEL_RESOLVED_URI)]
  1. // add attributes based on the request (routing)
  2. try {
  3. // matching a request is more powerful than matching a URL path + context, so try that first
  4. if ($this->matcher instanceof RequestMatcherInterface) {
  5. $parameters = $this->matcher->matchRequest($request);
  6. } else {
  7. $parameters = $this->matcher->match($request->getPathInfo());
  8. }
  9. $this->logger?->info('Matched route "{route}".', [
  1. $this->priority ??= $dispatcher->getListenerPriority($eventName, $this->listener);
  2. $e = $this->stopwatch->start($this->name, 'event_listener');
  3. try {
  4. ($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher);
  5. } finally {
  6. if ($e->isStarted()) {
  7. $e->stop();
  8. }
  9. }
  1. foreach ($listeners as $listener) {
  2. if ($stoppable && $event->isPropagationStopped()) {
  3. break;
  4. }
  5. $listener($event, $eventName, $this);
  6. }
  7. }
  8. /**
  9. * Sorts the internal list of listeners for the given event by priority.
  1. } else {
  2. $listeners = $this->getListeners($eventName);
  3. }
  4. if ($listeners) {
  5. $this->callListeners($listeners, $eventName, $event);
  6. }
  7. return $event;
  8. }
  1. *
  2. * @return TEvent
  3. */
  4. public function dispatch(object $event, ?string $eventName = null): object
  5. {
  6. $event = $this->dispatcher->dispatch($event, $eventName);
  7. if (!$event instanceof FlowEventAware) {
  8. return $event;
  9. }
  1. ) {
  2. }
  3. public function dispatch(object $event, ?string $eventName = null): object
  4. {
  5. $event = $this->dispatcher->dispatch($event, $eventName);
  6. // @deprecated tag:v6.7.0 - remove DISABLE_EXTENSIONS from if condition
  7. if (EnvironmentHelper::getVariable('DISABLE_EXTENSIONS', false) || !HookableEventFactory::isHookable($event)) {
  8. return $event;
  9. }
  1. }
  2. $this->dispatch($nested, $name);
  3. }
  4. }
  5. return $this->dispatcher->dispatch($event, $eventName);
  6. }
  7. /**
  8. * @param callable $listener can not use native type declaration @see https://github.com/symfony/symfony/issues/42283
  9. */
  1. try {
  2. $this->beforeDispatch($eventName, $event);
  3. try {
  4. $e = $this->stopwatch->start($eventName, 'section');
  5. try {
  6. $this->dispatcher->dispatch($event, $eventName);
  7. } finally {
  8. if ($e->isStarted()) {
  9. $e->stop();
  10. }
  11. }
  1. */
  2. private function handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response
  3. {
  4. // request
  5. $event = new RequestEvent($this, $request, $type);
  6. $this->dispatcher->dispatch($event, KernelEvents::REQUEST);
  7. if ($event->hasResponse()) {
  8. return $this->filterResponse($event->getResponse(), $request, $type);
  9. }
  1. $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
  2. $this->requestStack->push($request);
  3. $response = null;
  4. try {
  5. return $response = $this->handleRaw($request, $type);
  6. } catch (\Throwable $e) {
  7. if ($e instanceof \Error && !$this->handleAllThrowables) {
  8. throw $e;
  9. }
  1. $this->dispatcher->dispatch($event);
  2. return $event->getResponse();
  3. }
  4. return parent::handle($request, $type, $catch);
  5. }
  6. }
  1. if (!IpUtils::checkIp('127.0.0.1', $trustedProxies)) {
  2. Request::setTrustedProxies(array_merge($trustedProxies, ['127.0.0.1']), Request::getTrustedHeaderSet());
  3. }
  4. try {
  5. return $kernel->handle($request, $type, $catch);
  6. } finally {
  7. // restore global state
  8. Request::setTrustedProxies($trustedProxies, $trustedHeaderSet);
  9. }
  10. }
  1. protected function forward(Request $request, bool $catch = false, ?Response $entry = null): Response
  2. {
  3. $this->surrogate?->addSurrogateCapability($request);
  4. // always a "master" request (as the real master request can be in cache)
  5. $response = SubRequestHandler::handle($this->kernel, $request, HttpKernelInterface::MAIN_REQUEST, $catch);
  6. /*
  7. * Support stale-if-error given on Responses or as a config option.
  8. * RFC 7234 summarizes in Section 4.2.4 (but also mentions with the individual
  9. * Cache-Control directives) that
  1. */
  2. protected function pass(Request $request, bool $catch = false): Response
  3. {
  4. $this->record($request, 'pass');
  5. return $this->forward($request, $catch);
  6. }
  7. /**
  8. * Invalidates non-safe methods (like POST, PUT, and DELETE).
  9. *
  1. *
  2. * @see RFC2616 13.10
  3. */
  4. protected function invalidate(Request $request, bool $catch = false): Response
  5. {
  6. $response = $this->pass($request, $catch);
  7. // invalidate only when the response is successful
  8. if ($response->isSuccessful() || $response->isRedirect()) {
  9. try {
  10. $this->store->invalidate($request);
  1. }
  2. $this->traces[$this->getTraceKey($request)] = [];
  3. if (!$request->isMethodSafe()) {
  4. $response = $this->invalidate($request, $catch);
  5. } elseif ($request->headers->has('expect') || !$request->isMethodCacheable()) {
  6. $response = $this->pass($request, $catch);
  7. } elseif ($this->options['allow_reload'] && $request->isNoCache()) {
  8. /*
  9. If allow_reload is configured and the client requests "Cache-Control: no-cache",
  1. // only handle main request inside http cache, because ESI tags are also interpreted as main request.
  2. // sub requests are requests, which are forwarded to the kernel inside the php stack
  3. // https://github.com/symfony/symfony/issues/51648#issuecomment-1717846894
  4. if ($type === HttpKernelInterface::MAIN_REQUEST) {
  5. $response = parent::handle($request, $type, $catch);
  6. } elseif ($request->attributes->has('_sw_esi')) {
  7. $response = parent::handle($request, $type, $catch);
  8. } else {
  9. $response = $this->getKernel()->handle($request, $type, $catch);
  10. }
in vendor/shopware/core/Kernel.php -> handle (line 156)
  1. {
  2. if (!$this->booted) {
  3. $this->boot();
  4. }
  5. return $this->getHttpKernel()->handle($request, $type, $catch);
  6. }
  7. public function boot(): void
  8. {
  9. if ($this->booted === true) {
  1. ) {
  2. }
  3. public function run(): int
  4. {
  5. $response = $this->kernel->handle($this->request);
  6. if (Kernel::VERSION_ID >= 60400) {
  7. $response->send(false);
  8. if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in vendor/autoload_runtime.php -> run (line 29)
  1. $app = $app(...$args);
  2. exit(
  3. $runtime
  4. ->getRunner($app)
  5. ->run()
  6. );
require_once('/var/www/vhosts/pen4you.de/httpdocs_pen4u.de/vendor/autoload_runtime.php') in public/index.php (line 10)
  1. use Shopware\Core\Installer\InstallerKernel;
  2. use Shopware\Core\Framework\Adapter\Kernel\KernelFactory;
  3. $_SERVER['SCRIPT_FILENAME'] = __FILE__;
  4. require_once __DIR__ . '/../vendor/autoload_runtime.php';
  5. if (!file_exists(__DIR__ . '/../.env') && !file_exists(__DIR__ . '/../.env.dist') && !file_exists(__DIR__ . '/../.env.local.php')) {
  6. $_SERVER['APP_RUNTIME_OPTIONS']['disable_dotenv'] = true;
  7. }