I expect that changing an attribute of an instance fires the Instance.Changed event, in accordance with the documentation for attributes (Properties and attributes | Documentation - Roblox Creator Hub) stating that the Instance.Changed event listens for changes to any property, including attributes.
The documentation for attributes states otherwise, though. It states that “the Instance.Changed event listens for changes to any property (including attributes) and passes the name of the changed property as a parameter.”
This bug started occurring for me last week, around 1/27/2025 6pm CST. Before that, Instance.Changed would detect when attributes were changed. If this is a new, intended change, then I think the documentation should be updated to reflect this.
Instance.Changed and DataModel.ItemChanged signals will no longer be called when non-scriptable of inaccessible properties change.
Attributes causing Changed to fire was a side effect of attributes being saved as a binary string property. The documentation should change–it was documenting the behavior as it was, not as it was intended to be.