{"data":{"id":"magento2-39188","source":"github-pr","sourceRef":"magento/magento2#39188","title":"The Varnish configs do not strip Klaviyo marketing parameter","pr":{"number":39188,"url":"https://github.com/magento/magento2/pull/39188","author":"sprankhub","mergedAt":"2024-11-01T15:51:08Z","mergeCommit":"bb3efa8d02428c4f73de0a51957a3bc2b768f642","headCommit":"b9690e97908fab31b67425a670e629263f9fff77","baseRef":"2.4-develop","diffSha256":"b9ec5d169a06c50c1e730a76084eb7fc7f9cb9b938d3a1a04f60b2178161d9db"},"issues":[{"number":35227,"url":"https://github.com/magento/magento2/issues/35227","title":"The Varnish configs do not strip Klaviyo marketing parameter","labels":["Area: Framework","Component: Cache","Issue: Confirmed","Issue: needs update","Issue: ready for confirmation","Priority: P2","Progress: done","Reproduced on 2.4.x"],"kind":"human"},{"number":38298,"url":"https://github.com/magento/magento2/issues/38298","title":"Varnish configuration does not exclude all marketing parameters","labels":["Area: Framework","Component: Cache","Issue: Confirmed","Priority: P2","Progress: done","Reported on 2.4.6-p3","Reproduced on 2.4.x"],"kind":"human"}],"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":"2.4.6-p3","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":"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/module-page-cache"],"files":[{"path":"app/code/Magento/PageCache/etc/varnish4.vcl","change":"modified","package":"magento/module-page-cache"},{"path":"app/code/Magento/PageCache/etc/varnish5.vcl","change":"modified","package":"magento/module-page-cache"},{"path":"app/code/Magento/PageCache/etc/varnish6.vcl","change":"modified","package":"magento/module-page-cache"},{"path":"app/code/Magento/PageCache/etc/varnish7.vcl","change":"modified","package":"magento/module-page-cache"}],"stripped":{"tests":[],"docs":[],"outsideCode":[]},"linesChanged":16,"mergeBatched":false,"excluded":null,"sections":{"description":"1. Varnish does not strip the parameter, and since the value is unique per visitor, those requests will not match any hashes in Varnish's cache.\n2. This also results in additional PHP load due to the request needing to be processed by Magento.","stepsToReproduce":"1. Use a VCL that is included with Magento.\n2. Send a marketing email via Klaviyo.\n3. Watch varnishlog.\n4. Visit the site using a link that is included in a Klaviyo-generated email.\n5. Visit the site using a similar link that does not include the `_kx` query parameter.\n6. Compare the results shown by varnishlog.","expectedResult":"1. The `_kx` parameter should be stripped, ensuring that visitors using links with the `_kx` parameter are served the cached version of the requested page.","actualResult":"1. Varnish does not strip the parameter, and since the value is unique per visitor, those requests will not match any hashes in Varnish's cache.\n2. This also results in additional PHP load due to the request needing to be processed by Magento.\n\n---\nPlease provide [Severity](https://devdocs.magento.com/guides/v2.4/contributor-guide/contributing.html#backlog) assessment for the Issue as Reporter. This information will help during Confirmation and Issue triage processes.\n\n- [ ] Severity: **S0** _- Affects critical data or functionality and leaves users without workaround._\n- [ ] Severity: **S1** _- Affects critical data or functionality and forces users to employ a workaround._\n- [X] Severity: **S2** _- Affects non-critical data or functionality and forces users to employ a workaround._\n- [ ] Severity: **S3** _- Affects non-critical data or functionality and does not force users to employ a workaround._\n- [ ] Severity: **S4** _- Affects aesthetics, professional look and feel, “quality” or “usability”._","source":"issue"},"signatures":[],"labels":{"area":["Framework"],"component":["Cache"],"priority":"P2","severity":null,"reportedOn":["2.4.6-p3"]},"categories":["Cache"],"triage":{"model":"@cf/cloudflare/clef","requestHash":"cf9a4a72d022c6e075214174750c4ce8efb4043655316cdd3157cdae66245068","isBugfix":0.9304,"changeKind":{"choice":"bugfix","probabilities":{"bugfix":0.8734,"feature":0.0849,"refactor":0.0158,"tests_only":0.0077,"docs_only":0.009,"dependency":0.0092},"confidence":0.7246},"scope":{"score":0.4384,"probabilities":{"0":0.6349,"1":0.2919,"2":0.0732},"confidence":0.2404},"risk":{"score":0.2317,"probabilities":{"0":0.8012,"1":0.1659,"2":0.0329},"confidence":0.5057},"area":{"choice":"framework","probabilities":{"catalog":0.0062,"checkout":0.0067,"customer":0.0051,"admin":0.0147,"graphql_api":0.004,"framework":0.9429,"frontend":0.0108,"other":0.0096},"confidence":0.8739},"securityRelevant":0.0072,"reportedVersion":{"choice":"2.4.6-p3","probabilities":{"2.4.0":0.0019,"2.4.0-p1":0.0023,"2.4.1":0.002,"2.4.1-p1":0.0021,"2.4.2":0.0021,"2.4.2-p1":0.0024,"2.4.2-p2":0.0026,"2.4.3":0.0026,"2.4.3-p1":0.003,"2.4.3-p2":0.0036,"2.4.3-p3":0.0033,"2.4.4":0.0026,"2.4.4-p1":0.0032,"2.4.4-p10":0.0033,"2.4.4-p11":0.0044,"2.4.4-p12":0.004,"2.4.4-p13":0.0037,"2.4.4-p14":0.004,"2.4.4-p15":0.0033,"2.4.4-p16":0.0038,"2.4.4-p17":0.0034,"2.4.4-p18":0.0033,"2.4.4-p2":0.0021,"2.4.4-p3":0.0022,"2.4.4-p4":0.0022,"2.4.4-p5":0.0025,"2.4.4-p6":0.0028,"2.4.4-p7":0.0025,"2.4.4-p8":0.0026,"2.4.4-p9":0.0024,"2.4.5":0.0031,"2.4.5-p1":0.0029,"2.4.5-p10":0.0025,"2.4.5-p11":0.0034,"2.4.5-p12":0.0037,"2.4.5-p13":0.0033,"2.4.5-p14":0.0036,"2.4.5-p15":0.003,"2.4.5-p16":0.0032,"2.4.5-p17":0.0029,"2.4.5-p2":0.0024,"2.4.5-p3":0.0034,"2.4.5-p4":0.0027,"2.4.5-p5":0.0025,"2.4.5-p6":0.004,"2.4.5-p7":0.003,"2.4.5-p8":0.0027,"2.4.5-p9":0.0022,"2.4.6":0.1362,"2.4.6-p1":0.0048,"2.4.6-p10":0.0025,"2.4.6-p11":0.0029,"2.4.6-p12":0.0033,"2.4.6-p13":0.0067,"2.4.6-p14":0.0033,"2.4.6-p15":0.0032,"2.4.6-p2":0.0084,"2.4.6-p3":0.5288,"2.4.6-p4":0.0092,"2.4.6-p5":0.0097,"2.4.6-p6":0.0119,"2.4.6-p7":0.0073,"2.4.6-p8":0.0062,"2.4.6-p9":0.0066,"2.4.7":0.0058,"2.4.7-p1":0.0054,"2.4.7-p10":0.0031,"2.4.7-p2":0.0039,"2.4.7-p3":0.0052,"2.4.7-p4":0.005,"2.4.7-p5":0.0041,"2.4.7-p6":0.0053,"2.4.7-p7":0.0039,"2.4.7-p8":0.0034,"2.4.7-p9":0.003,"2.4.8":0.004,"2.4.8-p1":0.0053,"2.4.8-p2":0.0057,"2.4.8-p3":0.0065,"2.4.8-p4":0.006,"2.4.8-p5":0.0056,"2.4.9":0.0055,"unspecified":0.0216},"confidence":0.2916},"backportWorthy":{"score":1.6112,"probabilities":{"0":0.0875,"1":0.2138,"2":0.6987},"confidence":0.3123}},"curated":{"title":"Fixes the issue where Varnish configs do not strip common marketing parameters","description":"The Varnish configuration does not strip all marketing parameters, such as gad_source, srsltid, msclkid and the Klaviyo _kx parameter, so those requests do not match the cached page and add PHP load. Additional tracking parameters are added to the Varnish configuration, so the same page will be cached independent of them.","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-39188 details"}