Skip to content

PINIA_COLADA_R0006: mutation entry reused

  • Level: error (logged, dev only)

What happened

mutationCache.mutate() was called with a mutation entry that already settled or that has an ongoing request. Each call of a mutation must use a fresh entry: reusing one overwrites its state and can mix up concurrent invocations.

How to fix it

Re-ensure before every mutation call. ensure() takes the entry from create() plus the variables, and returns a fresh entry when the one you pass was already used:

ts
const mutationCache = useMutationCache()
let entry = mutationCache.create(options)

// ✅ re-ensure before each call to get a fresh entry
entry = mutationCache.ensure(entry, vars)
mutationCache.mutate(entry)

entry = mutationCache.ensure(entry, vars)
mutationCache.mutate(entry)

// ❌ reusing the same ensured entry for a second call
entry = mutationCache.ensure(entry, vars)
mutationCache.mutate(entry)
mutationCache.mutate(entry)

If you are not calling mutationCache.mutate() manually, this is probably a bug in Pinia Colada: please open an issue on GitHub with a boiled down reproduction.

Common causes

  • Caching a mutation entry and mutating it multiple times
  • Calling mutationCache.mutate() again before the previous call finished with the same entry

Released under the MIT License.