Skip to content

Clarify that you can't expect the redaction of a state event to remove its effect. #2252

@pixlwave

Description

@pixlwave

Link to problem area:

Possibly other areas too but the most obvious one to me would be the following:

Redacted events can still affect the state of the room. When redacted,
state events behave as though their properties were simply not
specified, except those protected by the redaction algorithm. For
example, a redacted `join` event will still result in the user being
considered joined. Similarly, a redacted topic does not necessarily
cause the topic to revert to what it was prior to the event - it causes
the topic to be removed from the room.

Issue

This came up whilst implementing spaces on Element X. The spec suggests that children can be removed from spaces via redaction, but Element Web doesn't support this and expects empty m.space.child/parent events to be sent instead. Following further discussion, @dkasak summarised the issue like so:

⁦In my mind, redactions have one and only one purpose: to redact information meant for consumption by other humans from a message. They should never be used for anything that could have an effect, such as removing any kind of authorization data.

⁦It was also always my impression that they were never designed for any other purpose than removing human level information?

It's not that you shouldn't redact state events, that's an entirely valid thing to do. It's that you shouldn't expect that redacting a state event is going to somehow remove its effect.⁦

Metadata

Metadata

Assignees

No one assigned

    Labels

    clarificationAn area where the expected behaviour is understood, but the spec could do with being more explicit

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions