{"data":{"id":"magento2-40023","source":"github-pr","sourceRef":"magento/magento2#40023","title":"magento/magento2#39905 Product Removed on Mobile Still Appears in Web's Mini Compare Section Until Re-login","pr":{"number":40023,"url":"https://github.com/magento/magento2/pull/40023","author":"KrasnoshchokBohdan","mergedAt":"2025-11-04T06:39:36Z","mergeCommit":"8aa02bb2476c3ffd0ce6cc10ac70bcd1103e60a6","headCommit":"b0c0764e7efc2ae971201060324c27af7454b9c0","baseRef":"2.4-develop","diffSha256":"2c5b1c9021e7038a58ace94afadf8fea95b61af1c6536717ae49a45cd3eac291"},"issues":[],"fixedIn":"2.4.9","containingTags":["2.4.9"],"reportedOn":null,"codeMatch":{"2.4.6":"clean","2.4.6-p1":"clean","2.4.6-p2":"clean","2.4.6-p3":"clean","2.4.6-p4":"clean","2.4.6-p5":"clean","2.4.6-p6":"clean","2.4.6-p7":"clean","2.4.6-p8":"clean","2.4.6-p9":"clean","2.4.6-p10":"clean","2.4.6-p11":"clean","2.4.6-p12":"clean","2.4.6-p13":"clean","2.4.6-p14":"clean","2.4.6-p15":"clean","2.4.7":"clean","2.4.7-p1":"clean","2.4.7-p2":"clean","2.4.7-p3":"clean","2.4.7-p4":"clean","2.4.7-p5":"clean","2.4.7-p6":"clean","2.4.7-p7":"clean","2.4.7-p8":"clean","2.4.7-p9":"clean","2.4.7-p10":"clean","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":"conflict"},"affectedVersions":["2.4.6","2.4.6-p1","2.4.6-p2","2.4.6-p3","2.4.6-p4","2.4.6-p5","2.4.6-p6","2.4.6-p7","2.4.6-p8","2.4.6-p9","2.4.6-p10","2.4.6-p11","2.4.6-p12","2.4.6-p13","2.4.6-p14","2.4.6-p15","2.4.7","2.4.7-p1","2.4.7-p2","2.4.7-p3","2.4.7-p4","2.4.7-p5","2.4.7-p6","2.4.7-p7","2.4.7-p8","2.4.7-p9","2.4.7-p10","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-compare-list-graph-ql"],"files":[{"path":"app/code/Magento/CompareListGraphQl/Model/Resolver/AddProductsToCompareList.php","change":"modified","package":"magento/module-compare-list-graph-ql"},{"path":"app/code/Magento/CompareListGraphQl/Model/Resolver/CreateCompareList.php","change":"modified","package":"magento/module-compare-list-graph-ql"},{"path":"app/code/Magento/CompareListGraphQl/Model/Resolver/RemoveProductsFromCompareList.php","change":"modified","package":"magento/module-compare-list-graph-ql"},{"path":"app/code/Magento/CompareListGraphQl/Model/Service/CompareCookieManager.php","change":"added","package":"magento/module-compare-list-graph-ql"}],"stripped":{"tests":["app/code/Magento/CompareListGraphQl/Test/Unit/Model/Service/CompareCookieManagerTest.php"],"docs":[],"outsideCode":[]},"linesChanged":183,"mergeBatched":false,"excluded":null,"sections":{"description":"<details>\n  <summary>createCompareList</summary>","stepsToReproduce":"1. Use any GraphQL mutation from the PR description.\n2. Log in as a customer and go to /catalog/product_compare/index/\n3. Go to /customer/account/index/ and check the \"Compare Products\" section.\n\n<img width=\"259\" alt=\"image\" src=\"https://github.com/user-attachments/assets/d00bd4fc-aeae-4842-9c66-71706eb9648a\" />","expectedResult":null,"actualResult":null,"source":"pr"},"signatures":[],"labels":{"area":[],"component":[],"priority":null,"severity":null,"reportedOn":[]},"categories":[],"triage":{"model":"@cf/cloudflare/clef","requestHash":"c63fb845b7b44aa1eef6c060fb7d8cb7f89c64d7d7f49186fb93e58f94d30cbc","isBugfix":0.9603,"changeKind":{"choice":"bugfix","probabilities":{"bugfix":0.9315,"feature":0.0162,"refactor":0.0183,"tests_only":0.0106,"docs_only":0.0048,"dependency":0.0042,"cleanup":0.0144},"confidence":0.8468},"scope":{"score":1.1854,"probabilities":{"0":0.2192,"1":0.3762,"2":0.4046},"confidence":0.0299},"risk":{"score":0.5368,"probabilities":{"0":0.5248,"1":0.4136,"2":0.0616},"confidence":0.1754},"area":{"choice":"graphql_api","probabilities":{"catalog":0.0611,"checkout":0.0108,"customer":0.1063,"admin":0.0087,"graphql_api":0.7571,"framework":0.0173,"frontend":0.0238,"other":0.0149},"confidence":0.5309},"securityRelevant":0.391,"reportedVersion":{"choice":"unspecified","probabilities":{"2.4.0":0.0017,"2.4.0-p1":0.0019,"2.4.1":0.0031,"2.4.1-p1":0.0024,"2.4.2":0.0038,"2.4.2-p1":0.0034,"2.4.2-p2":0.0035,"2.4.3":0.0079,"2.4.3-p1":0.0068,"2.4.3-p2":0.0087,"2.4.3-p3":0.0053,"2.4.4":0.0137,"2.4.4-p1":0.0083,"2.4.4-p10":0.0072,"2.4.4-p11":0.0102,"2.4.4-p12":0.0076,"2.4.4-p13":0.0084,"2.4.4-p14":0.0097,"2.4.4-p15":0.0068,"2.4.4-p16":0.0082,"2.4.4-p17":0.0085,"2.4.4-p18":0.0066,"2.4.4-p2":0.0018,"2.4.4-p3":0.0024,"2.4.4-p4":0.0025,"2.4.4-p5":0.0034,"2.4.4-p6":0.0052,"2.4.4-p7":0.0048,"2.4.4-p8":0.0063,"2.4.4-p9":0.005,"2.4.5":0.0141,"2.4.5-p1":0.0118,"2.4.5-p10":0.0093,"2.4.5-p11":0.0125,"2.4.5-p12":0.0116,"2.4.5-p13":0.0097,"2.4.5-p14":0.011,"2.4.5-p15":0.0077,"2.4.5-p16":0.0109,"2.4.5-p17":0.0085,"2.4.5-p2":0.0035,"2.4.5-p3":0.0057,"2.4.5-p4":0.006,"2.4.5-p5":0.0054,"2.4.5-p6":0.0061,"2.4.5-p7":0.0079,"2.4.5-p8":0.0077,"2.4.5-p9":0.0067,"2.4.6":0.0437,"2.4.6-p1":0.0232,"2.4.6-p10":0.0153,"2.4.6-p11":0.0153,"2.4.6-p12":0.0132,"2.4.6-p13":0.0151,"2.4.6-p14":0.0144,"2.4.6-p15":0.0145,"2.4.6-p2":0.0053,"2.4.6-p3":0.0094,"2.4.6-p4":0.0124,"2.4.6-p5":0.012,"2.4.6-p6":0.0105,"2.4.6-p7":0.012,"2.4.6-p8":0.0109,"2.4.6-p9":0.0084,"2.4.7":0.0315,"2.4.7-p1":0.0213,"2.4.7-p10":0.0101,"2.4.7-p2":0.0075,"2.4.7-p3":0.016,"2.4.7-p4":0.0173,"2.4.7-p5":0.0193,"2.4.7-p6":0.0239,"2.4.7-p7":0.0188,"2.4.7-p8":0.0144,"2.4.7-p9":0.0098,"2.4.8":0.0361,"2.4.8-p1":0.0313,"2.4.8-p2":0.0243,"2.4.8-p3":0.0229,"2.4.8-p4":0.0207,"2.4.8-p5":0.02,"2.4.9":0.0309,"unspecified":0.0571},"confidence":0.0076},"backportWorthy":{"score":1.4595,"probabilities":{"0":0.12,"1":0.3005,"2":0.5795},"confidence":0.1608}},"curated":{"title":"Compare Products counter ignores changes made by GraphQL compare list mutations","description":"After the createCompareList, addProductsToCompareList or removeProductsFromCompareList GraphQL mutations, the compare products counter in the header and in the customer account does not change. Each resolver in CompareListGraphQl now calls Compare::calculate and will invalidate the compare-products section with a new CompareCookieManager that updates the section_data_ids cookie.","categories":[],"author":"claude-code/opus-5.5","date":"2026-10-07","reviewedBy":null},"tests":{"2.4.8-p5":{"before":"fail","after":"pass","adapted":false,"runAt":"2026-10-07T15:09:29.163Z","releaseCommit":"870a22c63d9d9b68fa3297962e2d5d5841115814","suites":{"unit":{"before":"not-runnable","after":"pass","runAt":"2026-10-07T15:09:29.163Z","aggregateBefore":"fail"}}},"2.4.7-p10":{"before":"fail","after":"pass","adapted":false,"runAt":"2026-10-07T15:16:52.306Z","releaseCommit":"72561bf80652f57cc642a03e2c9a51d74a285b14","suites":{"unit":{"before":"not-runnable","after":"pass","runAt":"2026-10-07T15:16:52.306Z","aggregateBefore":"fail"}}}}},"_documentation":"https://magento.watch/api","_description":"Upstream fix magento2-40023 details"}