# What changed in graphql

> 20 changes in graphql 16 to 17 from its official release notes, upgrade guides and advisories: 1 breaking, 1 deprecations, 3 new APIs and options. Each one cited. Sources checked 2026-10-17. HTML: https://unstale.sh/npm/graphql/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## graphql 17

### Behavior and default changes

- Directives on directive definitions are graduated, allowing them to be used without experimental status. (17.0.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v17.0.0)

### Fixes and other changes

- Default-value changes on input object fields are now detected. (17.0.2) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v17.0.2)
- Fixes the context for the schema argument mapper. (17.0.2) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v17.0.2)
- Emits asyncStart after promise settlement to match native tracePromise behavior. (17.0.1) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v17.0.1)
- Directives are applied when SDL contains both type definitions and extensions with directives. (17.0.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v17.0.0)
- Invalid fragment variables now raise a request error. (17.0.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v17.0.0)
- Directive locations for input field arguments in extensions are corrected. (17.0.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v17.0.0)
- OneOf inhabitability is addressed. (17.0.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v17.0.0)

## graphql 16

### Breaking changes

- Sibling errors are no longer added after propagation, changing how errors are reported. (16.13.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v16.13.0)

### Deprecations

- A deprecated note was added to assertValidExecutionArguments. (16.13.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v16.13.0)

### New APIs and options

- Adds experimental support for directives on directive definitions. (16.14.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v16.14.0)
- Allows configuring the introspection depth for ofType references. (16.14.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v16.14.0)
- Adds support for schema coordinates. (16.12.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v16.12.0)

### Behavior and default changes

- Implements changes for executable descriptions, allowing developers to use descriptions with executable definitions. (16.12.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v16.12.0)

### Fixes and other changes

- Fixes variable own-property checks when converting values from an AST. (16.14.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v16.14.0)
- Uses Object.create(null) instead of {} to avoid prototype issues. (16.13.2) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v16.13.2)
- This is the first 16.x.x release with trusted publishing and provenance, which developers can consider when evaluating package authenticity. (16.13.1) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v16.13.1)
- Fixes incorrect validation errors when variable descriptions are used. (16.13.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v16.13.0)
- Catches unhandled exceptions in abstract resolution. (16.12.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v16.12.0)
- Removes oneof validation from values of the correct type. (16.12.0) — [release notes](https://github.com/graphql/graphql-js/releases/tag/v16.12.0)
