# 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]_