{"data":{"id":"magento2-39099","source":"github-pr","sourceRef":"magento/magento2#39099","title":"Remove all marketing get parameters to minimize the cache using built-in FPC","pr":{"number":39099,"url":"https://github.com/magento/magento2/pull/39099","author":"rogerdz","mergedAt":"2024-12-21T01:10:09Z","mergeCommit":"8f36bc3751ce4737156c88800384ea1a91e07c4d","headCommit":"ebcc80635c977a15c96ca99b731334f608dd7ef3","baseRef":"2.4-develop","diffSha256":"125ac0cb8bae4b8d388916e36011c4047c717d565b76975f6895923ac5554f46"},"issues":[{"number":39266,"url":"https://github.com/magento/magento2/issues/39266","title":"[Issue] Remove all marketing get parameters to minimize the cache","labels":["Area: Framework","Component: Framework/Cache","Issue: Confirmed","Priority: P2","Progress: done","Reported on 2.4.x","Reproduced on 2.4.x"],"kind":"pr-derived"}],"fixedIn":"2.4.8","containingTags":["2.4.8","2.4.8-p1","2.4.8-p2","2.4.8-p3","2.4.8-p4","2.4.8-p5","2.4.9"],"reportedOn":null,"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":"conflict","2.4.7-p1":"conflict","2.4.7-p2":"conflict","2.4.7-p3":"conflict","2.4.7-p4":"conflict","2.4.7-p5":"conflict","2.4.7-p6":"conflict","2.4.7-p7":"conflict","2.4.7-p8":"conflict","2.4.7-p9":"conflict","2.4.7-p10":"conflict","2.4.8":"conflict","2.4.8-p1":"conflict","2.4.8-p2":"conflict","2.4.8-p3":"conflict","2.4.8-p4":"conflict","2.4.8-p5":"conflict","2.4.9":"conflict"},"affectedVersions":[],"components":["magento/framework","magento/module-page-cache"],"files":[{"path":"app/code/Magento/PageCache/Model/App/Request/Http/IdentifierForSave.php","change":"modified","package":"magento/module-page-cache"},{"path":"lib/internal/Magento/Framework/App/PageCache/Identifier.php","change":"modified","package":"magento/framework"}],"stripped":{"tests":["app/code/Magento/PageCache/Test/Unit/Model/App/Request/Http/IdentifierForSaveTest.php","lib/internal/Magento/Framework/App/Test/Unit/PageCache/IdentifierTest.php"],"docs":[],"outsideCode":[]},"linesChanged":55,"mergeBatched":false,"excluded":null,"sections":{"description":"Same logic when use varnish (https://github.com/magento/magento2/blob/2.4-develop/app/code/Magento/PageCache/etc/varnish7.vcl#L84) but for build-in fpc","stepsToReproduce":"1. Clear cache: bin/magento cache:clean\n2. Run command: curl -I --location-trusted 'https://magento2.test/gear/bags.html?test=111&utm_source=123&gclid=abc' | grep -i X-Magento-Cache-Debug, it return x-magento-cache-debug: MISS => correct\n3. Run command: curl -I --location-trusted 'https://magento2.test/gear/bags.html?test=111&utm_source=123&gclid=abc' | grep -i X-Magento-Cache-Debug, it return x-magento-cache-debug: HIT => correct\n4. Run command: curl -I --location-trusted 'https://magento2.test/gear/bags.html?test=111' | grep -i X-Magento-Cache-Debug => it should return x-magento-cache-debug: HIT","expectedResult":null,"actualResult":null,"source":"pr"},"signatures":[],"labels":{"area":["Framework"],"component":["Framework/Cache"],"priority":"P2","severity":null,"reportedOn":["2.4.x"]},"categories":["Cache"],"triage":{"model":"@cf/cloudflare/clef","requestHash":"34ee7273fb714c328f0797d70f846d7ba54ee4338c3b94f05610dc2b064735d3","isBugfix":0.4038,"changeKind":{"choice":"bugfix","probabilities":{"bugfix":0.6002,"feature":0.2777,"refactor":0.1006,"tests_only":0.0117,"docs_only":0.004,"dependency":0.0058},"confidence":0.3372},"scope":{"score":0.9541,"probabilities":{"0":0.326,"1":0.3938,"2":0.2802},"confidence":0.0098},"risk":{"score":0.7073,"probabilities":{"0":0.3581,"1":0.5765,"2":0.0654},"confidence":0.1973},"area":{"choice":"framework","probabilities":{"catalog":0.0062,"checkout":0.0039,"customer":0.0031,"admin":0.0036,"graphql_api":0.0022,"framework":0.9614,"frontend":0.0102,"other":0.0094},"confidence":0.9137},"securityRelevant":0.0089,"reportedVersion":{"choice":"unspecified","probabilities":{"2.4.0":0.0041,"2.4.0-p1":0.0036,"2.4.1":0.0045,"2.4.1-p1":0.004,"2.4.2":0.0074,"2.4.2-p1":0.0064,"2.4.2-p2":0.0098,"2.4.3":0.0119,"2.4.3-p1":0.0151,"2.4.3-p2":0.0164,"2.4.3-p3":0.0087,"2.4.4":0.0166,"2.4.4-p1":0.0124,"2.4.4-p10":0.0073,"2.4.4-p11":0.0094,"2.4.4-p12":0.0077,"2.4.4-p13":0.0072,"2.4.4-p14":0.01,"2.4.4-p15":0.0074,"2.4.4-p16":0.0081,"2.4.4-p17":0.0066,"2.4.4-p18":0.0056,"2.4.4-p2":0.003,"2.4.4-p3":0.0035,"2.4.4-p4":0.0033,"2.4.4-p5":0.0047,"2.4.4-p6":0.0053,"2.4.4-p7":0.0046,"2.4.4-p8":0.0042,"2.4.4-p9":0.0045,"2.4.5":0.0137,"2.4.5-p1":0.0131,"2.4.5-p10":0.0081,"2.4.5-p11":0.013,"2.4.5-p12":0.0114,"2.4.5-p13":0.0095,"2.4.5-p14":0.0091,"2.4.5-p15":0.0082,"2.4.5-p16":0.0094,"2.4.5-p17":0.0074,"2.4.5-p2":0.0042,"2.4.5-p3":0.0065,"2.4.5-p4":0.0065,"2.4.5-p5":0.0072,"2.4.5-p6":0.0057,"2.4.5-p7":0.0072,"2.4.5-p8":0.0066,"2.4.5-p9":0.0057,"2.4.6":0.0317,"2.4.6-p1":0.0254,"2.4.6-p10":0.0125,"2.4.6-p11":0.0146,"2.4.6-p12":0.0138,"2.4.6-p13":0.0119,"2.4.6-p14":0.0116,"2.4.6-p15":0.01,"2.4.6-p2":0.0055,"2.4.6-p3":0.0094,"2.4.6-p4":0.0104,"2.4.6-p5":0.0085,"2.4.6-p6":0.0096,"2.4.6-p7":0.011,"2.4.6-p8":0.0063,"2.4.6-p9":0.006,"2.4.7":0.017,"2.4.7-p1":0.0166,"2.4.7-p10":0.0098,"2.4.7-p2":0.0087,"2.4.7-p3":0.0141,"2.4.7-p4":0.0184,"2.4.7-p5":0.0131,"2.4.7-p6":0.0155,"2.4.7-p7":0.0133,"2.4.7-p8":0.0127,"2.4.7-p9":0.0085,"2.4.8":0.023,"2.4.8-p1":0.0193,"2.4.8-p2":0.0216,"2.4.8-p3":0.0192,"2.4.8-p4":0.0198,"2.4.8-p5":0.0167,"2.4.9":0.0189,"unspecified":0.1398},"confidence":0.0193},"backportWorthy":{"score":1.3525,"probabilities":{"0":0.1583,"1":0.3309,"2":0.5108},"confidence":0.0932}},"curated":{"title":"Fixes the issue where the built-in FPC keeps marketing GET parameters","description":"The built-in FPC does not remove marketing GET parameters such as utm_source and gclid to minimize the cache, as Varnish does. The framework PageCache Identifier gets a list of marketing parameters to detect by pattern, and Identifier and IdentifierForSave now preg_replace them out of the request URI string for the page cache identifier.","categories":["Cache"],"author":"claude-code/opus-5.5","date":"2026-10-06","reviewedBy":null},"tests":null},"_documentation":"https://magento.watch/api","_description":"Upstream fix magento2-39099 details"}