{"data":{"id":"magento2-39971","source":"github-pr","sourceRef":"magento/magento2#39971","title":"Error getting order item discounts applied_to for customer order via GraphQl customer request","pr":{"number":39971,"url":"https://github.com/magento/magento2/pull/39971","author":"rogerdz","mergedAt":"2025-08-11T16:26:59Z","mergeCommit":"0cab07c5bc6eca5798f617b8fa0ef7c05543108f","headCommit":"c2f257ee5569861b2d409471414e5b540e77338d","baseRef":"2.4-develop","diffSha256":"8766fe51fb43bfe9088c18654ae962f0019df58f2d84c5f8ec2570802a53599e"},"issues":[{"number":39963,"url":"https://github.com/magento/magento2/issues/39963","title":"Error getting order item discounts applied_to for customer order via GraphQl customer request","labels":["Area: Promotion Rules","Component: GraphQL","Issue: Confirmed","Priority: P2","Progress: PR Created","Progress: done","Reported on 2.4.8","Reproduced on 2.4.x"],"kind":"human"}],"fixedIn":"2.4.9","containingTags":["2.4.9"],"reportedOn":"2.4.8","codeMatch":{"2.4.6":"conflict","2.4.6-p1":"conflict","2.4.6-p2":"conflict","2.4.6-p3":"conflict","2.4.6-p4":"conflict","2.4.6-p5":"conflict","2.4.6-p6":"conflict","2.4.6-p7":"conflict","2.4.6-p8":"conflict","2.4.6-p9":"conflict","2.4.6-p10":"conflict","2.4.6-p11":"conflict","2.4.6-p12":"conflict","2.4.6-p13":"conflict","2.4.6-p14":"conflict","2.4.6-p15":"conflict","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.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-sales-graph-ql"],"files":[{"path":"app/code/Magento/SalesGraphQl/Model/OrderItem/DataProvider.php","change":"modified","package":"magento/module-sales-graph-ql"}],"stripped":{"tests":[],"docs":[],"outsideCode":[]},"linesChanged":18,"mergeBatched":false,"excluded":null,"sections":{"description":"There is an error: Internal server error Cannot return null for non-nullable field \"Discount.applied_to\"","stepsToReproduce":"1. Create a simple product, customer, sales rule with a coupon, and place an order using this customer and applying coupon.\n2. Get customer token via GraphQL query **generateCustomerToken**\n3. Issue GraphQL request \n```\nquery {\n  customer {\n    firstname\n    lastname\n    orders {\n      items {\n        order_number\n        status\n        items {\n          product_sku\n          discounts {\n            applied_to\n            amount {\n              value\n            }\n          }\n        }\n      }\n      page_info {\n        current_page\n        page_size\n        total_pages\n      }\n      total_count\n    } \n  }\n}\n```","expectedResult":"There is a correct response from GraphQl with orders and order items discount data","actualResult":"There is an error: Internal server error Cannot return null for non-nullable field \"Discount.applied_to\"\n\nexception.log:\n```\n[2025-06-05T10:18:09.817671+00:00] main.ERROR: Cannot return null for non-nullable field \"Discount.applied_to\".\n\nGraphQL (25:13)\n24:           discounts {\n25:             applied_to\n                ^\n26:             amount {\n {\"exception\":\"[object] (GraphQL\\\\Error\\\\Error(code: 0): Cannot return null for non-nullable field \\\"Discount.applied_to\\\". at /home/zak/sites/magento/test1/public/vendor/webonyx/graphql-php/src/Error/Error.php:171)\n[previous exception] [object] (GraphQL\\\\Error\\\\InvariantViolation(code: 0): Cannot return null for non-nullable field \\\"Discount.applied_to\\\". at /home/zak/sites/magento/test1/public/vendor/webonyx/graphql-php/src/Executor/ReferenceExecutor.php:899)\"} []\n```","source":"issue"},"signatures":["{\"exception\":\"[object] (GraphQL\\\\Error\\\\Error(code: 0): Cannot return null for non-nullable field \\\"Discount.applied_to\\\". at )","[previous exception] [object] (GraphQL\\\\Error\\\\InvariantViolation(code: 0): Cannot return null for non-nullable field \\\"Discount.applied_to\\\". at )\"} []"],"labels":{"area":["Promotion Rules"],"component":["GraphQL"],"priority":"P2","severity":null,"reportedOn":["2.4.8"]},"categories":["GraphQL"],"triage":{"model":"@cf/cloudflare/clef","requestHash":"869dbb3aaa4474ad1a3f595f7e48a73d1cb0336467c8381cf34e79fd4cf894ea","isBugfix":0.9817,"changeKind":{"choice":"bugfix","probabilities":{"bugfix":0.9705,"feature":0.0052,"refactor":0.0112,"tests_only":0.0055,"docs_only":0.0034,"dependency":0.0042},"confidence":0.9304},"scope":{"score":0.813,"probabilities":{"0":0.329,"1":0.529,"2":0.142},"confidence":0.1124},"risk":{"score":0.3875,"probabilities":{"0":0.7098,"1":0.1929,"2":0.0973},"confidence":0.3258},"area":{"choice":"graphql_api","probabilities":{"catalog":0.0032,"checkout":0.0185,"customer":0.0194,"admin":0.0034,"graphql_api":0.9427,"framework":0.0048,"frontend":0.0029,"other":0.0051},"confidence":0.8737},"securityRelevant":0.0154,"reportedVersion":{"choice":"2.4.8","probabilities":{"2.4.0":0.0021,"2.4.0-p1":0.0022,"2.4.1":0.002,"2.4.1-p1":0.0022,"2.4.2":0.0023,"2.4.2-p1":0.0024,"2.4.2-p2":0.0026,"2.4.3":0.0028,"2.4.3-p1":0.0031,"2.4.3-p2":0.0038,"2.4.3-p3":0.0028,"2.4.4":0.0026,"2.4.4-p1":0.0024,"2.4.4-p10":0.003,"2.4.4-p11":0.003,"2.4.4-p12":0.003,"2.4.4-p13":0.0032,"2.4.4-p14":0.0034,"2.4.4-p15":0.003,"2.4.4-p16":0.0033,"2.4.4-p17":0.0033,"2.4.4-p18":0.0034,"2.4.4-p2":0.002,"2.4.4-p3":0.0021,"2.4.4-p4":0.0024,"2.4.4-p5":0.0026,"2.4.4-p6":0.0029,"2.4.4-p7":0.0029,"2.4.4-p8":0.0035,"2.4.4-p9":0.0026,"2.4.5":0.0028,"2.4.5-p1":0.0023,"2.4.5-p10":0.0025,"2.4.5-p11":0.0029,"2.4.5-p12":0.0046,"2.4.5-p13":0.0033,"2.4.5-p14":0.0037,"2.4.5-p15":0.003,"2.4.5-p16":0.0031,"2.4.5-p17":0.0031,"2.4.5-p2":0.0025,"2.4.5-p3":0.0024,"2.4.5-p4":0.0026,"2.4.5-p5":0.0027,"2.4.5-p6":0.0031,"2.4.5-p7":0.0032,"2.4.5-p8":0.0033,"2.4.5-p9":0.0024,"2.4.6":0.0053,"2.4.6-p1":0.0047,"2.4.6-p10":0.0052,"2.4.6-p11":0.0053,"2.4.6-p12":0.0061,"2.4.6-p13":0.006,"2.4.6-p14":0.0053,"2.4.6-p15":0.0051,"2.4.6-p2":0.0025,"2.4.6-p3":0.0032,"2.4.6-p4":0.0038,"2.4.6-p5":0.0041,"2.4.6-p6":0.0049,"2.4.6-p7":0.0049,"2.4.6-p8":0.0052,"2.4.6-p9":0.0031,"2.4.7":0.0069,"2.4.7-p1":0.0063,"2.4.7-p10":0.0071,"2.4.7-p2":0.0043,"2.4.7-p3":0.0056,"2.4.7-p4":0.0075,"2.4.7-p5":0.0058,"2.4.7-p6":0.0073,"2.4.7-p7":0.0073,"2.4.7-p8":0.0062,"2.4.7-p9":0.0036,"2.4.8":0.5674,"2.4.8-p1":0.026,"2.4.8-p2":0.0368,"2.4.8-p3":0.0242,"2.4.8-p4":0.0195,"2.4.8-p5":0.0196,"2.4.9":0.0093,"unspecified":0.0182},"confidence":0.3188},"backportWorthy":{"score":1.7149,"probabilities":{"0":0.0467,"1":0.1917,"2":0.7616},"confidence":0.4284}},"curated":{"title":"GraphQL customer orders fail with null Discount.applied_to on order items","description":"A GraphQL customer orders query that requests applied_to on order item discounts fails with Internal server error: Cannot return null for non-nullable field Discount.applied_to. The SalesGraphQl OrderItem DataProvider now sets applied_to on the order discount entry: SHIPPING when the order has a shipping discount amount, ITEM otherwise.","categories":["GraphQL"],"author":"claude-code/opus-5.5","date":"2026-10-06","reviewedBy":null},"tests":null},"_documentation":"https://magento.watch/api","_description":"Upstream fix magento2-39971 details"}