Summary
A Text Input's 'Default value' field ({{ selectedCharacterIds.value }}) stopped populating the input; the expression evaluates correctly (it renders in a tooltip and even in the component's Caption subcomponent), but the input box stays blank in both editor and preview—and it remained blank even after substituting a hardcoded static string. The app had been untouched for a long time and appeared to break suddenly.
AI Response
This is expected behavior of the Text Input's 'Default value', which only seeds the value on initial load or reset—once the component already holds a current value (common for a long-lived app with a persisted/cached value), changing the Default value no longer overrides what's displayed, even with a static string. The reference docs confirm the same property represents 'the current or default value,' which is why the source still renders correctly in the Caption but not in the input itself. To force the input to reflect the source, drive it programmatically with textInput.setValue({{ selectedCharacterIds.value }}) or reset it with textInput.resetValue() via an event handler (e.g., when the selection changes). The Retool status page shows no related platform incident affecting Text Input default values around that date.
Sources
The Text Input component for classic apps | Retool Docs
Documents that the Text Input's Default value maps to the 'current or default value' property and provides setValue() and resetValue() methods to programmatically populate or reset the field.
Unexpected behaviour of default values in input
A solved community thread corroborating that an input's default value stops applying once the component holds a current value, with the same programmatic reset/setValue workaround.
The Community Team is testing out a new automation designed to improve resource discovery. Let us know if it's helpful by leaving a
or
. Or by marking this post as the "Solution"! And let us know if you have any feedback here. ![]()