# GraphQL.js changelog
> The JavaScript reference implementation for GraphQL.
- Vendor: GraphQL Foundation
- Category: Frameworks & Libraries
- Official site: https://graphql.org
- Tracked by: What's New (https://whatsnew.fyi/product/graphql-js)
- Harvested from: GitHub (graphql/graphql-js)
- Entries below: 10 (newest first)
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.
## Releases
### 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]_
### v16.14.2
- Date: 2026-06-09
- Version: v16.14.2
- Original notes: https://github.com/graphql/graphql-js/releases/tag/v16.14.2
- Permalink: https://whatsnew.fyi/product/graphql-js/releases/v16.14.2
##### v16.14.2 (2026-06-09)
###### Docs π
7 PRs were merged
* [#4782](https://github.com/graphql/graphql-js/pull/4782) docs: update API ([@yaacovCR](https://github.com/yaacovCR))
* [#4783](https://github.com/graphql/graphql-js/pull/4783) docs: website review ([@yaacovCR](https://github.com/yaacovCR))
* [#4788](https://github.com/graphql/graphql-js/pull/4788) docs: add Node.js tracing channels guide ([@logaretm](https://github.com/logaretm))
* [#4789](https://github.com/graphql/graphql-js/pull/4789) docs: overhaul index and update/add additional migration guides ([@yaacovCR](https://github.com/yaacovCR))
* [#4792](https://github.com/graphql/graphql-js/pull/4792) docs: remove extra asterisks from single line jsdoc comments ([@yaacovCR](https://github.com/yaacovCR))
* [#4794](https://github.com/graphql/graphql-js/pull/4794) docs: refresh website with broader execution/tracing update ([@yaacovCR](https://github.com/yaacovCR))
* [#4801](https://github.com/graphql/graphql-js/pull/4801) docs: correct extension field comments - v16 ([@yaacovCR](https://github.com/yaacovCR))
###### Polish π
* [#4787](https://github.com/graphql/graphql-js/pull/4787) docs: update documentation for v17 release candidate ([@yaacovCR](https://github.com/yaacovCR))
###### Committers: 2
* Abdelrahman Awad([@logaretm](https://github.com/logaretm))
* Yaacov Rydzinski ([@yaacovCR](https://github.com/yaacovCR))
### v17.0.0-rc.0
- Date: 2026-06-02
- Version: v17.0.0-rc.0
- Original notes: https://github.com/graphql/graphql-js/releases/tag/v17.0.0-rc.0
- Permalink: https://whatsnew.fyi/product/graphql-js/releases/v17.0.0-rc.0
- Labels: Pre-release
- **added** β Implement tracing channels
- **fixed** β DeferStreamDirectiveOnRootField forbids fragments on abstract types
- **fixed** β DeferStreamDirectiveOnValidOperations fragment tracking
- **fixed** β Do not copy over stack from error cause
##### v17.0.0-rc.0 (2026-06-02)
###### New Feature π
* [#4670](https://github.com/graphql/graphql-js/pull/4670) feat(v17): Implement tracing channels ([@logaretm](https://github.com/logaretm))
###### Bug Fix π
* [#4761](https://github.com/graphql/graphql-js/pull/4761) fix: DeferStreamDirectiveOnRootField forbids fragments on abstract types ([@robrichard](https://github.com/robrichard))
* [#4762](https://github.com/graphql/graphql-js/pull/4762) fix: DeferStreamDirectiveOnValidOperations fragment tracking ([@robrichard](https://github.com/robrichard))
* [#4784](https://github.com/graphql/graphql-js/pull/4784) fix: do not copy over stack from error cause ([@Malien](https://github.com/Malien))
###### Docs π
* [#4781](https://github.com/graphql/graphql-js/pull/4781) docs: improve deprecation information regarding originalError and cause ([@yaacovCR](https://github.com/yaacovCR))
###### Committers: 4
* Abdelrahman Awad([@logaretm](https://github.com/logaretm))
* Rob Richard([@robrichard](https://github.com/robrichard))
* Yaacov Rydzinski ([@yaacovCR](https://github.com/yaacovCR))
* Yaroslav Petryk([@Malien](https://github.com/Malien))
### v16.14.1
- Date: 2026-06-01
- Version: v16.14.1
- Original notes: https://github.com/graphql/graphql-js/releases/tag/v16.14.1
- Permalink: https://whatsnew.fyi/product/graphql-js/releases/v16.14.1
##### v16.14.1 (2026-06-02)
###### Docs π
9 PRs were merged
* [#4737](https://github.com/graphql/graphql-js/pull/4737) docs: refresh upgrade guide and v17 topics ([@yaacovCR](https://github.com/yaacovCR))
* [#4741](https://github.com/graphql/graphql-js/pull/4741) docs: add v16 API docs lint coverage ([@yaacovCR](https://github.com/yaacovCR))
* [#4748](https://github.com/graphql/graphql-js/pull/4748) docs: update banner ([@yaacovCR](https://github.com/yaacovCR))
* [#4750](https://github.com/graphql/graphql-js/pull/4750) docs: use api docs generated from inline jsdoc comments ([@yaacovCR](https://github.com/yaacovCR))
* [#4754](https://github.com/graphql/graphql-js/pull/4754) docs: update website caniuse-lite data ([@yaacovCR](https://github.com/yaacovCR))
* [#4755](https://github.com/graphql/graphql-js/pull/4755) docs: hide internal type member __validationErrors ([@yaacovCR](https://github.com/yaacovCR))
* [#4757](https://github.com/graphql/graphql-js/pull/4757) docs: fix inline examples, deprecation descriptions, type category ([@yaacovCR](https://github.com/yaacovCR))
* [#4759](https://github.com/graphql/graphql-js/pull/4759) docs: fix static export redirect config ([@yaacovCR](https://github.com/yaacovCR))
* [#4767](https://github.com/graphql/graphql-js/pull/4767) docs: fix Post_body example variable ([@fallintoplace](https://github.com/fallintoplace))
###### Polish π
* [#4738](https://github.com/graphql/graphql-js/pull/4738) chore(tests): add test for directive extensions without flag enabled ([@yaacovCR](https://github.com/yaacovCR))
###### Internal π
* [#4778](https://github.com/graphql/graphql-js/pull/4778) fix: generated version documentation ([@yaacovCR](https://github.com/yaacovCR))
###### Committers: 2
* Minh Vu([@fallintoplace](https://github.com/fallintoplace))
* Yaacov Rydzinski ([@yaacovCR](https://github.com/yaacovCR))
### v17.0.0-beta.2
- Date: 2026-06-01
- Version: v17.0.0-beta.2
- Original notes: https://github.com/graphql/graphql-js/releases/tag/v17.0.0-beta.2
- Permalink: https://whatsnew.fyi/product/graphql-js/releases/v17.0.0-beta.2
- Labels: Pre-release
- **removed** β Strip private discriminator from package types
- **changed** β Discriminate between GraphQLNonNull and GraphQLList
- **changed** β Extract ExecutionArgs types to separate file
- **added** β Adopt Error.cause in favor of originalError
- **added** β Export VariableValues
- **added** β Export ValidationOptions
- **added** β Export SchemaChange
- **added** β Export defer and stream validation rules
- **added** β Export legacy incremental execution functions and helpers
- **fixed** β Development declaration stubs
- **fixed** β FragmentVariableValueSource.value can be non-constant
- **fixed** β Remove unnecessary native promise coercion
##### v17.0.0-beta.2 (2026-06-02)
###### Breaking Change π₯
* [#4751](https://github.com/graphql/graphql-js/pull/4751) build: strip private discriminator from package types ([@yaacovCR](https://github.com/yaacovCR))
* [#4752](https://github.com/graphql/graphql-js/pull/4752) fix: discriminate between GraphQLNonNull and GraphQLList ([@yaacovCR](https://github.com/yaacovCR))
* [#4770](https://github.com/graphql/graphql-js/pull/4770) refactor: extract ExecutionArgs types to separate file ([@yaacovCR](https://github.com/yaacovCR))
###### New Feature π
* [#4485](https://github.com/graphql/graphql-js/pull/4485) Adopt Error.cause in favor of originalError ([@Malien](https://github.com/Malien))
###### Bug Fix π
* [#4739](https://github.com/graphql/graphql-js/pull/4739) chore(tests): add test for directive extensions without flag enabled (#4738) ([@yaacovCR](https://github.com/yaacovCR))
* [#4743](https://github.com/graphql/graphql-js/pull/4743) api: export VariableValues ([@yaacovCR](https://github.com/yaacovCR))
* [#4744](https://github.com/graphql/graphql-js/pull/4744) api: export ValidationOptions ([@yaacovCR](https://github.com/yaacovCR))
* [#4745](https://github.com/graphql/graphql-js/pull/4745) api: export SchemaChange ([@yaacovCR](https://github.com/yaacovCR))
* [#4746](https://github.com/graphql/graphql-js/pull/4746) api: export defer and stream validation rules ([@yaacovCR](https://github.com/yaacovCR))
* [#4747](https://github.com/graphql/graphql-js/pull/4747) api: export legacy incremental execution functions and helpers ([@yaacovCR](https://github.com/yaacovCR))
* [#4753](https://github.com/graphql/graphql-js/pull/4753) fix(build): development declaration stubs ([@yaacovCR](https://github.com/yaacovCR))
* [#4773](https://github.com/graphql/graphql-js/pull/4773) fix: FragmentVariableValueSource.value can be non-constant ([@yaacovCR](https://github.com/yaacovCR))
* [#4775](https://github.com/graphql/graphql-js/pull/4775) fix: remove unnecessary native promise coercion ([@yaacovCR](https://github.com/yaacovCR))
###### Docs π
3 PRs were merged
* [#4742](https://github.com/graphql/graphql-js/pull/4742) docs: add v17 API docs lint coverage ([@yaacovCR](https://github.com/yaacovCR))
* [#4756](https://github.com/graphql/graphql-js/pull/4756) docs: hide private internals `schema.__validationErrors` and `inputValue._memoizedCoercedDefaultValue` ([@yaacovCR](https://github.com/yaacovCR))
* [#4758](https://github.com/graphql/graphql-js/pull/4758) docs: fix inline examples, deprecation descriptions, type category ([@yaacovCR](https://github.com/yaacovCR))
###### Polish π
* [#4774](https://github.com/graphql/graphql-js/pull/4774) test: restore GraphQLError no-stack coverage ([@yaacovCR](https://github.com/yaacovCR))
###### Internal π
3 PRs were merged
* [#4771](https://github.com/graphql/graphql-js/pull/4771) internal: drop node 20 integration tests ([@yaacovCR](https://github.com/yaacovCR))
* [#4772](https://github.com/graphql/graphql-js/pull/4772) internal: add deno 2.8.x to CI ([@yaacovCR](https://github.com/yaacovCR))
* [#4777](https://github.com/graphql/graphql-js/pull/4777) fix: preserve generated version documentation ([@yaacovCR](https://github.com/yaacovCR))
###### Committers: 2
* Yaacov Rydzinski ([@yaacovCR](https://github.com/yaacovCR))
* Yaroslav Petryk([@Malien](https://github.com/Malien))
### v17.0.0-beta.1
- Date: 2026-05-10
- Version: v17.0.0-beta.1
- Original notes: https://github.com/graphql/graphql-js/releases/tag/v17.0.0-beta.1
- Permalink: https://whatsnew.fyi/product/graphql-js/releases/v17.0.0-beta.1
- Labels: Pre-release
- **removed** β Drop Node 20 support
- **added** β Support Node v26
- **changed** β Replace perEventExecutor with mapSourceToResponseEvent in subscribe
- **changed** β Extract buildResolveInfo helper in execution
- **fixed** β Forward-port directives on directive definitions
- **fixed** β Forward-port configuration of the ofType introspection depth
##### v17.0.0-beta.1 (2026-05-10)
###### Breaking Change π₯
* [#4729](https://github.com/graphql/graphql-js/pull/4729) subscribe: replace perEventExecutor with mapSourceToResponseEvent ([@yaacovCR](https://github.com/yaacovCR))
* [#4730](https://github.com/graphql/graphql-js/pull/4730) chore(engines): drop Node 20 support ([@yaacovCR](https://github.com/yaacovCR))
* [#4731](https://github.com/graphql/graphql-js/pull/4731) refactor(execution): extract buildResolveInfo helper ([@yaacovCR](https://github.com/yaacovCR))
###### New Feature π
* [#4733](https://github.com/graphql/graphql-js/pull/4733) feat: support node v26 ([@yaacovCR](https://github.com/yaacovCR))
###### Bug Fix π
* [#4725](https://github.com/graphql/graphql-js/pull/4725) chore: forward-port directives on directive definitions (#4521) ([@yaacovCR](https://github.com/yaacovCR))
* [#4727](https://github.com/graphql/graphql-js/pull/4727) chore: forward-port configuration of the `ofType` introspection depth (#4317) ([@yaacovCR](https://github.com/yaacovCR))
###### Polish π
* [#4728](https://github.com/graphql/graphql-js/pull/4728) polish: group FRAGMENT_VARIABLE_DEFINITION with executable defs ([@yaacovCR](https://github.com/yaacovCR))
###### Internal π
3 PRs were merged
* [#4460](https://github.com/graphql/graphql-js/pull/4460) internal: use node experimental-strip-types instead of ts-node ([@yaacovCR](https://github.com/yaacovCR))
* [#4732](https://github.com/graphql/graphql-js/pull/4732) internal: use node test instead of mocha + c8 ([@yaacovCR](https://github.com/yaacovCR))
* [#4734](https://github.com/graphql/graphql-js/pull/4734) internal: add comment re: rewriteRelativeImportExtensions ([@yaacovCR](https://github.com/yaacovCR))
###### Committers: 1
* Yaacov Rydzinski ([@yaacovCR](https://github.com/yaacovCR))
### v17.0.0-beta.0
- Date: 2026-05-07
- Version: v17.0.0-beta.0
- Original notes: https://github.com/graphql/graphql-js/releases/tag/v17.0.0-beta.0
- Permalink: https://whatsnew.fyi/product/graphql-js/releases/v17.0.0-beta.0
- Labels: Pre-release
- **removed** β Use Object.create(null) over {} to avoid prototype issues
- **changed** β Demote createSourceEventStream to helper taking ValidatedExecutionArgs
- **changed** β Rename executeQueryOrMutationOrSubscriptionEvent to executeRootSelectionSet
- **fixed** β Treat undefined as absent with respect to variables
- **fixed** β Ignore undefined-valued unknown fields in input objects
- **added** β Expose asyncWorkFinished execution hook
- **added** β Expose partial result on abort errors
- **added** β Export validateExecutionArgs helper
- **added** β Add ValidatedSubscriptionArgs and validateSubscriptionArgs
- **fixed** β Replace stopped promise with onStop handlers
- **fixed** β Close stream iterator only on abnormal stop
- **fixed** β Await async incremental cleanup
- **fixed** β Do not close unnecessarily in withConcurrentAbruptClose
- **fixed** β Handle rejection when cancelling already-aborted promise
- **fixed** β Handle list promise rejections in execute
- **fixed** β Handle defaultTypeResolver promise rejections
- **fixed** β Finish executors before publishing responses
- **fixed** β Prevent bubbling sync errors from becoming async
- **fixed** β Let aborted async paths reach finish
- **fixed** β Convert all promise-like results to promises in execution
##### v17.0.0-beta.0 (2026-05-07)
###### Breaking Change π₯
* [#4634](https://github.com/graphql/graphql-js/pull/4634) Use Object.create(null) over {} to avoid prototype issues ([@benjie](https://github.com/benjie))
* [#4700](https://github.com/graphql/graphql-js/pull/4700) Demote createSourceEventStream to helper taking ValidatedExecutionArgs ([@yaacovCR](https://github.com/yaacovCR))
* [#4703](https://github.com/graphql/graphql-js/pull/4703) rename executeQueryOrMutationOrSubscriptionEvent to executeRootSelectionSet ([@yaacovCR](https://github.com/yaacovCR))
* [#4708](https://github.com/graphql/graphql-js/pull/4708) fix(variables): treat undefined as absent with respect to variables ([@yaacovCR](https://github.com/yaacovCR))
* [#4710](https://github.com/graphql/graphql-js/pull/4710) fix: ignore undefined-valued unknown fields in input objects ([@yaacovCR](https://github.com/yaacovCR))
###### New Feature π
* [#4658](https://github.com/graphql/graphql-js/pull/4658) feat(execution): expose asyncWorkFinished execution hook ([@yaacovCR](https://github.com/yaacovCR))
* [#4674](https://github.com/graphql/graphql-js/pull/4674) feat(execution): expose partial result on abort errors ([@yaacovCR](https://github.com/yaacovCR))
* [#4701](https://github.com/graphql/graphql-js/pull/4701) export validateExecutionArgs helper ([@yaacovCR](https://github.com/yaacovCR))
* [#4702](https://github.com/graphql/graphql-js/pull/4702) feat: add ValidatedSubscriptionArgs and validateSubscriptionArgs ([@yaacovCR](https://github.com/yaacovCR))
###### Bug Fix π
* [#4637](https://github.com/graphql/graphql-js/pull/4637) refactor(queue): replace stopped promise with onStop handlers ([@yaacovCR](https://github.com/yaacovCR))
* [#4641](https://github.com/graphql/graphql-js/pull/4641) refactor(incremental): close stream iterator only on abnormal stop ([@yaacovCR](https://github.com/yaacovCR))
* [#4642](https://github.com/graphql/graphql-js/pull/4642) fix(incremental): await async incremental cleanup ([@yaacovCR](https://github.com/yaacovCR))
* [#4644](https://github.com/graphql/graphql-js/pull/4644) fix(withConcurrentAbruptClose): do not close unnecessarily ([@yaacovCR](https://github.com/yaacovCR))
* [#4645](https://github.com/graphql/graphql-js/pull/4645) fix(cancellablePromise): handle rejection when cancelling already-aborted promise ([@yaacovCR](https://github.com/yaacovCR))
* [#4643](https://github.com/graphql/graphql-js/pull/4643) fix(execute): handle list promise rejections ([@yaacovCR](https://github.com/yaacovCR))
* [#4646](https://github.com/graphql/graphql-js/pull/4646) fix(execute): handle defaultTypeResolver promise rejections ([@yaacovCR](https://github.com/yaacovCR))
* [#4648](https://github.com/graphql/graphql-js/pull/4648) refactor(executor): separate finish/abort orchestration ([@yaacovCR](https://github.com/yaacovCR))
* [#4655](https://github.com/graphql/graphql-js/pull/4655) fix(execution): finish executors before publishing responses ([@yaacovCR](https://github.com/yaacovCR))
* [#4661](https://github.com/graphql/graphql-js/pull/4661) fix: bubbling sync errors need not become async ([@yaacovCR](https://github.com/yaacovCR))
* [#4663](https://github.com/graphql/graphql-js/pull/4663) fix(executor): let aborted async paths reach finish ([@yaacovCR](https://github.com/yaacovCR))
* [#4657](https://github.com/graphql/graphql-js/pull/4657) refactor(execution): track pending work ([@yaacovCR](https://github.com/yaacovCR))
* [#4664](https://github.com/graphql/graphql-js/pull/4664) fix(perf): hoist error creation ([@yaacovCR](https://github.com/yaacovCR))
* [#4665](https://github.com/graphql/graphql-js/pull/4665) execution: reduce parent executor retention in incremental callbacks ([@yaacovCR](https://github.com/yaacovCR))
* [#4671](https://github.com/graphql/graphql-js/pull/4671) fix(valueFromAST): forward port #4652 ([@yaacovCR](https://github.com/yaacovCR))
* [#4672](https://github.com/graphql/graphql-js/pull/4672) fix(execution): convert al
_[Truncated at 4000 characters β full notes: https://github.com/graphql/graphql-js/releases/tag/v17.0.0-beta.0]_
### v16.14.0
- Date: 2026-05-06
- Version: v16.14.0
- Original notes: https://github.com/graphql/graphql-js/releases/tag/v16.14.0
- Permalink: https://whatsnew.fyi/product/graphql-js/releases/v16.14.0
- **added** β Allow configuration of the ofType introspection depth
- **added** β Add experimental support for directives on directive definitions
- **fixed** β Fix valueFromAST variable own-property checks
##### v16.14.0 (2026-05-03)
###### New Feature π
* [#4317](https://github.com/graphql/graphql-js/pull/4317) Allow configuration of the `ofType` introspection depth ([@Nols1000](https://github.com/Nols1000))
* [#4521](https://github.com/graphql/graphql-js/pull/4521) Add experimental support for directives on directive definitions ([@BoD](https://github.com/BoD))
###### Bug Fix π
* [#4652](https://github.com/graphql/graphql-js/pull/4652) Fix valueFromAST variable own-property checks
([@abishekgiri](https://github.com/abishekgiri))
###### Docs π
* [#4706](https://github.com/graphql/graphql-js/pull/4706) Fix mistake in GraphQLError guidance ([@benjie](https://github.com/benjie))
###### Committers: 4
* Abishek Kumar Giri([@abishekgiri](https://github.com/abishekgiri))
* Benjie([@benjie](https://github.com/benjie))
* Benoit 'BoD' Lubek([@BoD](https://github.com/BoD))
* Nils-BΓΆrge Margotti([@Nols1000](https://github.com/Nols1000))