AUR0227

Error Message

AUR0227: Side-effect detected in computed getter '{{getter}}': mutation during evaluation caused self-dirtying. This can lead to infinite recursion. Use non-mutating operations (e.g., spread syntax) or move side effects outside the getter.

Where {{getter}} is the computed getter name (for example get total).

Description

This error occurs when a computed getter (a getter tracked by Aurelia’s observation system) mutates state while it is being evaluated. Mutations during evaluation can “self-dirty” the computed observer and cause repeated re-evaluation (potentially an infinite loop).

Example Trigger

export class MyVm {
  items = ['b', 'a'];

  // ❌ Mutates state during evaluation (Array.prototype.sort is in-place)
  get sortedItems() {
    return this.items.sort();
  }
}

Correct Usage

Make computed getters pure (no side effects / no mutation). Use non-mutating operations or compute elsewhere.

Troubleshooting

  • Identify the computed getter from {{getter}} in the message.

  • Look for in-place mutations inside the getter (for example sort, reverse, push, splice, ++, assignments).

  • Move side effects to explicit actions (methods/event handlers) or effects/watchers, and keep the getter as a pure derivation.

Last updated

Was this helpful?