Row duplication preserves trigger-generated UUID (should regenerate?)

When a column uses a trigger formula to generate a UUID (e.g. via UUID()), duplicating a row copies the UUID value instead of generating a new one.

The trigger does not re-run on row duplication, resulting in duplicate UUIDs across rows.

Is this intended behaviour, or a bug?

I use trigger formula to fill in default values if the user leaves it blank so to me this behaviour is expected. Could you also check “apply on record changes” and check to see if the current value is blank or a duplicate?