# What changed in @graphql-yoga/plugin-persisted-operations

> 12 changes in @graphql-yoga/plugin-persisted-operations 3 to 4 from its official release notes, upgrade guides and advisories: 11 breaking, 1 new APIs and options. Each one cited. Sources checked 2026-11-13. HTML: https://unstale.sh/npm/@graphql-yoga/plugin-persisted-operations/

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

## @graphql-yoga/plugin-persisted-operations 4

### Breaking changes

- Plugins added with addPlugin are inserted in place, so their hooks execute immediately after the plugin that added them. (4.0.0) — [upgrade guide](https://the-guild.dev/graphql/yoga-server/docs/migration/migration-from-yoga-v4)
- The minimum supported GraphQL version is now 16; GraphQL 14 and 15 are no longer supported. (4.0.0) — [release notes](https://github.com/graphql-hive/graphql-yoga/releases/tag/%40graphql-yoga/plugin-persisted-operations%404.0.0)
- Yoga now limits request bodies to 25,000,000 bytes by default. Set maxRequestBodySize: false in createYoga to disable the limit. (4.0.0) — [release notes](https://github.com/graphql-hive/graphql-yoga/releases/tag/%40graphql-yoga/plugin-persisted-operations%404.0.0)
- The minimum supported Node version is now 22; Node 18 and 20 are no longer supported. (4.0.0) — [release notes](https://github.com/graphql-hive/graphql-yoga/releases/tag/%40graphql-yoga/plugin-persisted-operations%404.0.0)
- Node.js v16 is no longer supported. (3.0.0, 4.0.0) — [upgrade guide](https://the-guild.dev/graphql/yoga-server/docs/migration/migration-from-yoga-v4), [release notes](https://github.com/graphql-hive/graphql-yoga/blob/HEAD/packages/plugins/persisted-operations/CHANGELOG.md)
- Request body parsing is asynchronous, so yoga.fetch() can return a Promise where it previously returned a synchronous Response, even when resolvers and plugins are synchronous. (4.0.0) — [release notes](https://github.com/graphql-hive/graphql-yoga/releases/tag/%40graphql-yoga/plugin-persisted-operations%404.0.0)

### New APIs and options

- The migration instructions install the graphql-yoga NPM package. (4.0.0) — [upgrade guide](https://the-guild.dev/graphql/yoga-server/docs/migration/migration-from-yoga-v4)

## @graphql-yoga/plugin-persisted-operations 3

### Breaking changes

- This unused GraphiQL option was removed and can no longer be configured. (3.0.0) — [upgrade guide](https://the-guild.dev/graphql/yoga-server/docs/migration/migration-from-yoga-v3)
- This unused GraphiQL option was removed and can no longer be configured. (3.0.0) — [upgrade guide](https://the-guild.dev/graphql/yoga-server/docs/migration/migration-from-yoga-v3)
- Subscriptions now use GraphQL over SSE “distinct connections mode” instead of Yoga’s previous custom SSE transport; the notes recommend graphql-sse for clients. (3.0.0) — [upgrade guide](https://the-guild.dev/graphql/yoga-server/docs/migration/migration-from-yoga-v3)
- Subscriptions no longer support multipart/mixed as a transport method; they use text/event-stream instead. (3.0.0) — [upgrade guide](https://the-guild.dev/graphql/yoga-server/docs/migration/migration-from-yoga-v3)
- Parsing and validation caching are configured through this single option, replacing the separate parserCache and validationCache options. (3.0.0) — [upgrade guide](https://the-guild.dev/graphql/yoga-server/docs/migration/migration-from-yoga-v3)
