{"data":{"id":"magento2-40423","source":"github-pr","sourceRef":"magento/magento2#40423","title":"Unnecessarly escaped characters in ProductInterface","pr":{"number":40423,"url":"https://github.com/magento/magento2/pull/40423","author":"yaroslav-kozar","mergedAt":"2026-02-10T16:48:17Z","mergeCommit":"825834a4c6fbf96377eab5c425ae905085910846","headCommit":"3069256c2869c363ab0686de5ff4fa16085f7671","baseRef":"2.4-develop","diffSha256":"cb6d46dc04a1fcc5a1fd30ad02333cdf87b3edca1202856027470ba804ed09c4"},"issues":[{"number":40178,"url":"https://github.com/magento/magento2/issues/40178","title":"Unnecessarly escaped characters in ProductInterface","labels":["Area: Product","Component: GraphQL","Issue: Confirmed","Priority: P3","Progress: PR Created","Progress: done","Reported on 2.4.8-p1","Reproduced on 2.4.x"],"kind":"human"}],"fixedIn":"2.4.9","containingTags":["2.4.9"],"reportedOn":"2.4.8-p1","codeMatch":{"2.4.6":"file-missing","2.4.6-p1":"file-missing","2.4.6-p2":"file-missing","2.4.6-p3":"file-missing","2.4.6-p4":"file-missing","2.4.6-p5":"file-missing","2.4.6-p6":"file-missing","2.4.6-p7":"file-missing","2.4.6-p8":"file-missing","2.4.6-p9":"file-missing","2.4.6-p10":"file-missing","2.4.6-p11":"file-missing","2.4.6-p12":"file-missing","2.4.6-p13":"file-missing","2.4.6-p14":"file-missing","2.4.6-p15":"file-missing","2.4.7":"file-missing","2.4.7-p1":"file-missing","2.4.7-p2":"file-missing","2.4.7-p3":"file-missing","2.4.7-p4":"file-missing","2.4.7-p5":"file-missing","2.4.7-p6":"file-missing","2.4.7-p7":"file-missing","2.4.7-p8":"file-missing","2.4.7-p9":"file-missing","2.4.7-p10":"file-missing","2.4.8":"clean","2.4.8-p1":"clean","2.4.8-p2":"clean","2.4.8-p3":"clean","2.4.8-p4":"clean","2.4.8-p5":"clean","2.4.9":"file-missing"},"affectedVersions":["2.4.8","2.4.8-p1","2.4.8-p2","2.4.8-p3","2.4.8-p4","2.4.8-p5"],"components":["magento/module-catalog-graph-ql"],"files":[{"path":"app/code/Magento/CatalogGraphQl/Model/Resolver/Product/ProductName.php","change":"deleted","package":"magento/module-catalog-graph-ql"},{"path":"app/code/Magento/CatalogGraphQl/etc/schema.graphqls","change":"modified","package":"magento/module-catalog-graph-ql"}],"stripped":{"tests":["dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/ProductNameWithSpecialCharactersTest.php"],"docs":[],"outsideCode":[]},"linesChanged":55,"mergeBatched":false,"excluded":null,"sections":{"description":"The GraphQL API returns the escaped greater than sign `&gt;`","stepsToReproduce":"1. In Magento admin, create a product with a special character in the name. For example `>`.\n2. Query the `name` from that product using GraphQL.","expectedResult":"It should return unescaped `>` in the name.","actualResult":"The GraphQL API returns the escaped greater than sign `&gt;`","source":"issue"},"signatures":[],"labels":{"area":["Product"],"component":["GraphQL"],"priority":"P3","severity":null,"reportedOn":["2.4.8-p1"]},"categories":["Catalog/Product","GraphQL"],"triage":{"model":"@cf/cloudflare/clef","requestHash":"52946c7905c4b3d2969f66f8556a5f60bafea5a385617115ae2356d4561bae7a","isBugfix":0.9812,"changeKind":{"choice":"bugfix","probabilities":{"bugfix":0.9435,"feature":0.0063,"refactor":0.0268,"tests_only":0.0128,"docs_only":0.0049,"dependency":0.0057},"confidence":0.8694},"scope":{"score":0.7386,"probabilities":{"0":0.3688,"1":0.5238,"2":0.1074},"confidence":0.1329},"risk":{"score":0.585,"probabilities":{"0":0.5159,"1":0.3831,"2":0.101},"confidence":0.1347},"area":{"choice":"graphql_api","probabilities":{"catalog":0.0954,"checkout":0.0043,"customer":0.0032,"admin":0.0045,"graphql_api":0.8778,"framework":0.0062,"frontend":0.0045,"other":0.0041},"confidence":0.7482},"securityRelevant":0.842,"reportedVersion":{"choice":"2.4.8-p1","probabilities":{"2.4.0":0.0022,"2.4.0-p1":0.0027,"2.4.1":0.0023,"2.4.1-p1":0.0026,"2.4.2":0.0023,"2.4.2-p1":0.0028,"2.4.2-p2":0.0029,"2.4.3":0.0026,"2.4.3-p1":0.0031,"2.4.3-p2":0.0034,"2.4.3-p3":0.0031,"2.4.4":0.0025,"2.4.4-p1":0.0028,"2.4.4-p10":0.0037,"2.4.4-p11":0.0035,"2.4.4-p12":0.0037,"2.4.4-p13":0.0037,"2.4.4-p14":0.0045,"2.4.4-p15":0.0038,"2.4.4-p16":0.0039,"2.4.4-p17":0.0034,"2.4.4-p18":0.0032,"2.4.4-p2":0.0025,"2.4.4-p3":0.0026,"2.4.4-p4":0.0027,"2.4.4-p5":0.0033,"2.4.4-p6":0.0033,"2.4.4-p7":0.0032,"2.4.4-p8":0.0033,"2.4.4-p9":0.0031,"2.4.5":0.0025,"2.4.5-p1":0.0026,"2.4.5-p10":0.0026,"2.4.5-p11":0.0031,"2.4.5-p12":0.0046,"2.4.5-p13":0.0036,"2.4.5-p14":0.004,"2.4.5-p15":0.0033,"2.4.5-p16":0.0034,"2.4.5-p17":0.0031,"2.4.5-p2":0.0026,"2.4.5-p3":0.0028,"2.4.5-p4":0.003,"2.4.5-p5":0.0031,"2.4.5-p6":0.0037,"2.4.5-p7":0.0036,"2.4.5-p8":0.0036,"2.4.5-p9":0.0029,"2.4.6":0.0033,"2.4.6-p1":0.0041,"2.4.6-p10":0.0043,"2.4.6-p11":0.0048,"2.4.6-p12":0.0048,"2.4.6-p13":0.0047,"2.4.6-p14":0.0044,"2.4.6-p15":0.0037,"2.4.6-p2":0.0031,"2.4.6-p3":0.0032,"2.4.6-p4":0.0038,"2.4.6-p5":0.0037,"2.4.6-p6":0.0038,"2.4.6-p7":0.0046,"2.4.6-p8":0.0039,"2.4.6-p9":0.0032,"2.4.7":0.0045,"2.4.7-p1":0.0059,"2.4.7-p10":0.0047,"2.4.7-p2":0.0031,"2.4.7-p3":0.0046,"2.4.7-p4":0.0057,"2.4.7-p5":0.0047,"2.4.7-p6":0.0059,"2.4.7-p7":0.0055,"2.4.7-p8":0.0045,"2.4.7-p9":0.0032,"2.4.8":0.0215,"2.4.8-p1":0.6212,"2.4.8-p2":0.0358,"2.4.8-p3":0.0167,"2.4.8-p4":0.012,"2.4.8-p5":0.0135,"2.4.9":0.0086,"unspecified":0.0042},"confidence":0.3819},"backportWorthy":{"score":1.5772,"probabilities":{"0":0.0871,"1":0.2486,"2":0.6643},"confidence":0.266}},"curated":{"title":"Fixes GraphQL escaping special characters in the product name field","description":"The GraphQL product name field was unnecessarily escaping special characters using escapeUrl(), which caused breaking changes for native mobile apps and inconsistency with REST API behavior. The fix removes the ProductName resolver so product names are returned raw from the database.","categories":["Catalog/Product","GraphQL"],"author":"claude-code/opus-5.5","date":"2026-10-06","reviewedBy":null},"tests":{"2.4.8-p5":{"before":"not-runnable","after":"error","adapted":false,"runAt":"2026-10-06T10:02:55.306Z","releaseCommit":"870a22c63d9d9b68fa3297962e2d5d5841115814","suites":{"api-functional":{"before":"not-runnable","after":"error","runAt":"2026-10-06T10:02:55.306Z"}}}}},"_documentation":"https://magento.watch/api","_description":"Upstream fix magento2-40423 details"}