Skip to content

Commit ad4efb8

Browse files
Fixed internal server error for query urlResolver
1 parent 75cf826 commit ad4efb8

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

app/code/Magento/UrlRewriteGraphQl/Model/Resolver/EntityUrl.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
namespace Magento\UrlRewriteGraphQl\Model\Resolver;
99

1010
use Magento\Framework\GraphQl\Exception\GraphQlInputException;
11+
use Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException;
1112
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
1213
use Magento\Framework\GraphQl\Config\Element\Field;
1314
use Magento\Framework\GraphQl\Query\ResolverInterface;
@@ -73,6 +74,11 @@ public function resolve(
7374
$url = $customUrl ?: $url;
7475
$urlRewrite = $this->findCanonicalUrl($url);
7576
if ($urlRewrite) {
77+
if (!$urlRewrite->getEntityId()) {
78+
throw new GraphQlNoSuchEntityException(
79+
__('No such entity found with matching URL key: %url', ['url' => $url])
80+
);
81+
}
7682
$result = [
7783
'id' => $urlRewrite->getEntityId(),
7884
'canonical_url' => $urlRewrite->getTargetPath(),
@@ -99,6 +105,9 @@ private function findCanonicalUrl(string $requestPath) : ?\Magento\UrlRewrite\Se
99105
if (!$urlRewrite) {
100106
$urlRewrite = $this->findUrlFromTargetPath($requestPath);
101107
}
108+
if (!$urlRewrite->getEntityId() && !$urlRewrite->getIsAutogenerated()) {
109+
$urlRewrite = $this->findUrlFromTargetPath($urlRewrite->getTargetPath());
110+
}
102111

103112
return $urlRewrite;
104113
}

0 commit comments

Comments
 (0)