emberjs/ember.js · error · Error
You attempted to set ${String(prop)} on the arguments of a c
Error message
You attempted to set ${String(prop)} on the arguments of a component, helper, or modifier. Arguments are immutable and cannot be updated directly; they always represent the values that are passed down. If you want to set default values, you should use a getter and local tracked state instead. What it means
Error "You attempted to set ${String(prop)} on the arguments of a component, helper, or modifier. Arguments are immutable and cannot be updated directly; they always represent the values that are passed down. If you want to set default values, you should use a getter and local tracked state instead." thrown in emberjs/ember.js.
Source
Thrown at packages/@glimmer/manager/lib/util/args-proxy.ts:157
export const argsProxyFor = (
capturedArgs: CapturedArguments,
type: 'component' | 'helper' | 'modifier'
): Arguments => {
const { named, positional } = capturedArgs;
let getNamedTag = (_obj: object, key: string) => tagForNamedArg(named, key);
let getPositionalTag = (_obj: object, key: string) => tagForPositionalArg(positional, key);
const namedHandler = new NamedArgsProxy(named);
const positionalHandler = new PositionalArgsProxy(positional);
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const namedTarget = Object.create(null);
const positionalTarget: unknown[] = [];
if (DEBUG) {
const setHandler = function (_target: unknown, prop: symbol | string | number): never {
throw new Error(
`You attempted to set ${String(
prop
)} on the arguments of a component, helper, or modifier. Arguments are immutable and cannot be updated directly; they always represent the values that are passed down. If you want to set default values, you should use a getter and local tracked state instead.`
);
};
const forInDebugHandler = (): never => {
throw new Error(
`Object.keys() was called on the positional arguments array for a ${type}, which is not supported. This function is a low-level function that should not need to be called for positional argument arrays. You may be attempting to iterate over the array using for...in instead of for...of.`
);
};
namedHandler.set = setHandler;
positionalHandler.set = setHandler;
positionalHandler.ownKeys = forInDebugHandler;
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignmentView on GitHub (pinned to 26f97246a8)
When it happens
Trigger: Thrown at packages/@glimmer/manager/lib/util/args-proxy.ts:157 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of emberjs/ember.js@26f97246a8 (2026-09-01).
Data as JSON: /api/errors/5fe75adda823869f.
Report an issue: GitHub.