# GraphQL.js: what changed from 16 to 17 - Product: GraphQL.js (https://whatsnew.fyi/product/graphql-js) - Vendor: GraphQL Foundation - Range: changelog entries numbered after v16.14.2 up to and including v17.0.2, stable releases only - Entries below: 3 releases (newest first) - Resolved: 16 is v16.14.2 and 17 is v17.0.2, the newest stable release of each major we track - Carrying security changes: 0 · CVEs mentioned: 0 · Mentioning breaking changes: 0 · Removing or deprecating something: 0 - Page: https://whatsnew.fyi/product/graphql-js/compare/16...17 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## What changed (8 changes, grouped by kind) ### Added #### v17.0.0 (2026-06-15) - Graduate directives on directives ### Fixed #### v17.0.2 (2026-07-03) - Detect default-value changes on input object fields - Fix context for schema argument mapper in mapSchemaConfig #### v17.0.1 (2026-06-16) - emit asyncStart after promise settlement to match native tracePromise in diagnostics #### v17.0.0 (2026-06-15) - Raise request error on invalid fragment variables - Apply directives when SDL contains type definitions and extensions with directives - Fix OneOf inhabitability - Fix KnownDirectivesRule locations for input field arguments in extensions ## Release notes ### v17.0.2 - Date: 2026-07-03 - Version: v17.0.2 - Original notes: https://github.com/graphql/graphql-js/releases/tag/v17.0.2 - Permalink: https://whatsnew.fyi/product/graphql-js/releases/v17.0.2 - **fixed** — Detect default-value changes on input object fields - **fixed** — Fix context for schema argument mapper in mapSchemaConfig ##### v17.0.2 (2026-07-03) ###### Bug Fix 🐞 * [#4832](https://github.com/graphql/graphql-js/pull/4832) fix: detect default-value changes on input object fields ([@spokodev](https://github.com/spokodev)) ###### Polish 💅 * [#4829](https://github.com/graphql/graphql-js/pull/4829) fix(mapSchemaConfig): fix context for schema argument mapper ([@yaacovCR](https://github.com/yaacovCR)) ###### Committers: 2 * null([@spokodev](https://github.com/spokodev)) * Yaacov Rydzinski ([@yaacovCR](https://github.com/yaacovCR)) ### v17.0.1 - Date: 2026-06-16 - Version: v17.0.1 - Original notes: https://github.com/graphql/graphql-js/releases/tag/v17.0.1 - Permalink: https://whatsnew.fyi/product/graphql-js/releases/v17.0.1 - **fixed** — emit asyncStart after promise settlement to match native tracePromise in diagnostics ##### v17.0.1 (2026-06-16) ###### Bug Fix 🐞 * [#4824](https://github.com/graphql/graphql-js/pull/4824) fix(diagnostics): emit asyncStart after promise settlement to match native `tracePromise` ([@logaretm](https://github.com/logaretm)) ###### Internal 🏠
2 PRs were merged * [#4823](https://github.com/graphql/graphql-js/pull/4823) chore(npm): remove obsolete ESM-only package build ([@yaacovCR](https://github.com/yaacovCR)) * [#4825](https://github.com/graphql/graphql-js/pull/4825) chore(release): protect latest release channels ([@yaacovCR](https://github.com/yaacovCR))
###### Committers: 2 * Abdelrahman Awad([@logaretm](https://github.com/logaretm)) * Yaacov Rydzinski ([@yaacovCR](https://github.com/yaacovCR)) ### v17.0.0 - Date: 2026-06-15 - Version: v17.0.0 - Original notes: https://github.com/graphql/graphql-js/releases/tag/v17.0.0 - Permalink: https://whatsnew.fyi/product/graphql-js/releases/v17.0.0 - **added** — Graduate directives on directives - **fixed** — Raise request error on invalid fragment variables - **fixed** — Apply directives when SDL contains type definitions and extensions with directives - **fixed** — Fix OneOf inhabitability - **fixed** — Fix KnownDirectivesRule locations for input field arguments in extensions ##### v17.0.0 (2026-06-15) ###### New Feature 🚀 * [#4819](https://github.com/graphql/graphql-js/pull/4819) feat: graduate directives on directives ([@yaacovCR](https://github.com/yaacovCR)) ###### Bug Fix 🐞 * [#4799](https://github.com/graphql/graphql-js/pull/4799) fix: raise request error on invalid fragment variables ([@yaacovCR](https://github.com/yaacovCR)) * [#4800](https://github.com/graphql/graphql-js/pull/4800) fix: apply directives when SDL contains type definitions and extensions with directives ([@yaacovCR](https://github.com/yaacovCR)) * [#4564](https://github.com/graphql/graphql-js/pull/4564) OneOf Inhabitability ([@jbellenger](https://github.com/jbellenger)) * [#4814](https://github.com/graphql/graphql-js/pull/4814) fix(KnownDirectivesRule): locations for input field arguments in extensions ([@yaacovCR](https://github.com/yaacovCR)) * [#4726](https://github.com/graphql/graphql-js/pull/4726) feat(validation): reject directive definition cycles ([@yaacovCR](https://github.com/yaacovCR)) * [#4815](https://github.com/graphql/graphql-js/pull/4815) Revert "feat(validation): reject directive definition cycles (#4726)" ([@yaacovCR](https://github.com/yaacovCR)) ###### Docs 📝
11 PRs were merged * [#4790](https://github.com/graphql/graphql-js/pull/4790) docs: minor diagnostics doc comment improvements ([@yaacovCR](https://github.com/yaacovCR)) * [#4791](https://github.com/graphql/graphql-js/pull/4791) fix: docs: polish diagnostics comments further ([@yaacovCR](https://github.com/yaacovCR)) * [#4793](https://github.com/graphql/graphql-js/pull/4793) docs: further improve general execution and tracing docs ([@yaacovCR](https://github.com/yaacovCR)) * [#4802](https://github.com/graphql/graphql-js/pull/4802) docs: correct extension field comments - v17 ([@yaacovCR](https://github.com/yaacovCR)) * [#4805](https://github.com/graphql/graphql-js/pull/4805) docs: publish fixed extensions comments ([@yaacovCR](https://github.com/yaacovCR)) * [#4807](https://github.com/graphql/graphql-js/pull/4807) docs: add prettier for jsdoc examples ([@yaacovCR](https://github.com/yaacovCR)) * [#4435](https://github.com/graphql/graphql-js/pull/4435) Subscriptions docs suggestions ([@Urigo](https://github.com/Urigo)) * [#4811](https://github.com/graphql/graphql-js/pull/4811) docs: fix a few indentations inside string literals ([@yaacovCR](https://github.com/yaacovCR)) * [#4813](https://github.com/graphql/graphql-js/pull/4813) internal: docs update ([@yaacovCR](https://github.com/yaacovCR)) * [#4820](https://github.com/graphql/graphql-js/pull/4820) docs: document `@experimental_disableErrorPropagation` ([@yaacovCR](https://github.com/yaacovCR)) * [#4817](https://github.com/graphql/graphql-js/pull/4817) docs: post 17.rc-0 update ([@yaacovCR](https://github.com/yaacovCR))
###### Polish 💅
2 PRs were merged * [#4809](https://github.com/graphql/graphql-js/pull/4809) internal: use prettier for non-generated website files ([@yaacovCR](https://github.com/yaacovCR)) * [#4812](https://github.com/graphql/graphql-js/pull/4812) polish: fix stream test cases ([@yaacovCR](https://github.com/yaacovCR))
###### Internal 🏠
6 PRs were merged * [#4795](https://github.com/graphql/graphql-js/pull/4795) chore: move website publishing from 16.x.x to 17.x.x ([@yaacovCR](https://github.com/yaacovCR)) * [#4796](https://github.com/graphql/graphql-js/pull/4796) internal: fix broken npm/deno deployments ([@yaacovCR](https://github.com/yaacovCR)) * [#4797](https://github.com/graphql/graphql-js/pull/4797) ci: update GitHub Actions versions ([@yaacovCR](https://github.com/yaacovCR)) * [#4806](https://github.com/graphql/graphql-js/pull/4806) internal: update frontmatter ([@yaacovCR](https://github.com/yaacovCR)) * [#4808](https://github.com/graphql/graphql-js/pull/4808) intenral: fix ci badge ([@yaacovCR](https://github.com/yaacovCR)) * [#4810](https://github _[Truncated at 4000 characters — full notes: https://github.com/graphql/graphql-js/releases/tag/v17.0.0]_