appsmithorg/appsmith · error · TriggerFailureError
Widget ${payload.widgetName} not found
Error message
Widget ${payload.widgetName} not found What it means
TriggerFailureError thrown after the saga confirms widgetName is a string but getWidgetByName returns undefined. The name passed type validation but no widget with that exact name exists in the current flattened widget tree, so resetWidgetMetaUpdates cannot run.
Source
Thrown at app/client/src/sagas/ActionExecution/ResetWidgetActionSaga.ts:38
const { payload } = action;
const { metaUpdates, resetChildren, widgetName } = payload;
if (getType(widgetName) !== Types.STRING) {
throw new ActionValidationError(
"RESET_WIDGET_META_RECURSIVE_BY_NAME",
"widgetName",
Types.STRING,
getType(widgetName),
);
}
const widget: FlattenedWidgetProps | undefined = yield select(
getWidgetByName,
widgetName,
);
if (!widget) {
throw new TriggerFailureError(`Widget ${payload.widgetName} not found`);
}
yield put(resetWidgetMetaUpdates(metaUpdates));
yield take(ReduxActionTypes.RESET_WIDGET_META_EVALUATED);
AppsmithConsole.info({
source,
text: `resetWidget triggered`,
state: {
widgetName,
resetChildren,
},
});
}
View on GitHub (pinned to 8cd9021c24)
Solutions
- Open the canvas, select the widget, copy its exact name from the property pane, and paste it into resetWidget.
- If the widget lives on a different page, move the resetWidget call there or restructure the flow.
- Re-check after rename refactors: search the codebase for the old widget name.
Example fix
// before: widget renamed from 'Input1' to 'userNameInput'
resetWidget('Input1');
// after
resetWidget('userNameInput'); Defensive patterns
Strategy: validation
Validate before calling
// Confirm widget exists before resetting
// (no public helper; rely on canvas state)
if (!widgetExistsOnPage(widgetName)) {
showAlert(`Widget '${widgetName}' not found`, 'error');
return;
}
resetWidget(widgetName); Try / catch
try {
resetWidget(widgetName);
} catch (e) {
if (e instanceof TriggerFailureError) showAlert(e.message, 'error');
} Prevention
- After renaming a widget, search the codebase and update every resetWidget call.
- Keep resetWidget calls on the same page as the target widget.
- Treat widget names as case-sensitive identifiers.
When it happens
Trigger: widgetName is a valid string but does not match any widget on the current page; the widget was deleted or renamed after the binding was authored; the action runs on a page where the widget is not mounted.
Common situations: Renaming a widget without updating the resetWidget call; running the action during a page transition before the target widget mounts; typo (case sensitivity, trailing space).
Related errors
- Cannot find Iframe with name ${source} on this page
- resetWidget expected STRING for 'widgetName' argument but re
- Could not find action to update
- Could not find action to copy
AI-assisted analysis of appsmithorg/appsmith@8cd9021c24 (2026-08-12).
Data as JSON: /api/errors/d66b363b95fa8532.
Report an issue: GitHub.