# Flags can't be edited, even if they've never been used

**URL:** https://meta.discourse.org/t/flags-cant-be-edited-even-if-theyve-never-been-used/413137
**Category:** Support
**Created:** [23 september 2026 om 16:44 UTC](https://meta.discourse.org/t/flags-cant-be-edited-even-if-theyve-never-been-used/413137 "2026-09-23T16:44:02Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![mbauman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mbauman/32/139835_2.png) [@mbauman](https://meta.discourse.org/u/mbauman)
#### Post date: [23 september 2026 om 16:44 UTC](https://meta.discourse.org/t/flags-cant-be-edited-even-if-theyve-never-been-used/413137/1 "2026-09-23T16:44:02Z")

</div>

Continuing the discussion from [Flags can't be edited after they have been used](https://meta.discourse.org/t/flags-cant-be-edited-after-they-have-been-used/329911/16):

It really seems like we should be able to edit a flag that’s _never_ been used. Is this a bug?

 ![image](https://global.discourse-cdn.com/meta/original/4X/e/5/7/e577a92e744902bebd372b4bf5c041b0ce2023b9.png)

```sql
SELECT *
FROM post_actions as p
WHERE p.post_action_type_id = 1001

```

=\> 0 results

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [23 september 2026 om 22:57 UTC](https://meta.discourse.org/t/flags-cant-be-edited-even-if-theyve-never-been-used/413137/2 "2026-09-23T22:57:09Z")

</div>

Yes, I can see this too, there’s an ID collision… you _can_ edit custom flags that are unused, just not the first few you create 🙃

This will get things straightened out once merged

> <https://github.com/discourse/discourse/pull/44064>
>
> Reported here: https://meta.discourse.org/t/flags-cant-be-edited-even-if-theyve-…never-been-used/413137
> 
> \`SYSTEM\_FLAG\_IDS\` was generated from \`PostActionType.types\`, which returns every flag row including custom ones... so some custom flag ids were baked in, and any site's custom flags with those same ids (1001–1003, 1010–1012) showed up as non-editable and non-deletable. Generally any site that has created 1 custom flag will see this (because they start at 1001) 
> 
> This switches away from generated IDs to a \`system\` attribute, and scopes the generated constant to system ids so custom flags won't leak again. 
> 
> Now that the generator can be fixed the task can be fully run... so this also includes the regenerated \`admin/lib/constants.js\`, plus two files generated from earlier changes that didn't run it: \`notification-types.js\` (#43044) and the emoji data (#39496). 😵‍💫
