···106106to update data in the cache that is implicitly changed on the GraphQL API, that _Graphcache_ can't
107107know about automatically.
108108109109+For mutation fields that don't have an updater, Graphcache has a fallback: if a returned entity
110110+isn't currently found in the cache, it assumes a create-mutation and invalidates cached
111111+entities of that type. This behavior was introduced in Graphcache v7 and is skipped once an updater
112112+for the mutation field is added.
113113+109114```ts
110115interface UpdatesConfig {
111116 Mutation: {
+12
docs/graphcache/cache-updates.md
···5959});
6060```
61616262+## Default mutation invalidation
6363+6464+Starting in [Graphcache v7](https://github.com/urql-graphql/urql/blob/main/exchanges/graphcache/CHANGELOG.md#700),
6565+mutations without a configured `updates.Mutation.<fieldName>` updater have a fallback behavior:
6666+6767+- If the mutation returns an entity that can't be found in the cache yet, Graphcache treats this as
6868+ a "create" mutation.
6969+- Graphcache then invalidates cached entities of the same `__typename` as the one returned from the mutation, which can trigger related queries to refetch.
7070+7171+As soon as you define an updater for that mutation field, this fallback behavior no longer runs and
7272+your updater fully controls what happens after the mutation write.
7373+6274An "updater" may be attached to a `Mutation` or `Subscription` field and accepts four positional
6375arguments, which are the same as [the resolvers' arguments](./local-resolvers.md):
6476