# Aufgrund eines Fehlers keine Administratorrechte gewähren können

**URL:** https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170
**Category:** Bug
**Created:** [20. März 2025 um 15:34 UTC](https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170 "2025-03-20T15:34:27Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![hannes\_e](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hannes_e/32/495007_2.png) [@hannes\_e](https://meta.discourse.org/u/hannes_e)
#### Post date: [20. März 2025 um 15:34 UTC](https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170/1 "2025-03-20T15:34:28Z")

</div>

Hallo!

Wenn ich versuche, einem Benutzer (eigentlich jedem Benutzer) Administratorrechte zu gewähren, erhalte ich nach dem Klicken auf den Bestätigungslink nur die folgende Fehlermeldung:

 ![image](https://global.discourse-cdn.com/meta/original/4X/e/1/a/e1a637a00c9ca6eefef1f82813c1b0bea777157c.png)

Ich habe die Protokolle überprüft und die folgenden Meldungen gefunden:

`ActiveRecord::RecordInvalid (Validation failed: Name has already been taken) app/models/group.rb:607:in 'refresh_automatic_group!' app/models/group.rb:666:in 'block in refresh_automatic_groups!' app/m`

`Failed to handle exception in exception app middleware : ActiveRecord::RecordInvalid : Validation failed: Name has already been taken`

Etwa zur gleichen Zeit erhalte ich auch eine Meldung, dass MaxMind nicht richtig funktioniert. Ich bin mir nicht sicher, ob dies damit zusammenhängt (ich habe keine entsprechenden Einstellungen in der Admin-Oberfläche gefunden):

`MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb`

Wie kann ich dies weiter debuggen?

Danke,  
Hannes

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [20. März 2025 um 15:44 UTC](https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170/2 "2025-03-20T15:44:41Z")

</div>

Tritt dieser Fehler auf, wenn Sie auf die Schaltfläche „Administrator gewähren“ klicken?

---

<div class="post-metadata">

### Author: ![hannes\_e](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hannes_e/32/495007_2.png) [@hannes\_e](https://meta.discourse.org/u/hannes_e)
#### Post date: [20. März 2025 um 16:07 UTC](https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170/3 "2025-03-20T16:07:48Z")

</div>

Nein, das Klicken auf die Schaltfläche „Administrator gewähren“ funktioniert.

Der vollständige Vorgang sieht wie folgt aus:

1. Ich klicke auf die Schaltfläche „Administrator gewähren“, die Anwendung zeigt mir ein Modal an: „Wir haben Ihnen eine E-Mail gesendet, um den neuen Administrator zu verifizieren. Bitte öffnen Sie sie und befolgen Sie die Anweisungen.“
2. Ich klicke auf den Bestätigungslink in der E-Mail („Administrator-Konto bestätigen“), der mich zu einer Bestätigungsseite weiterleitet.
3. Auf der Bestätigungsseite klicke ich auf die Schaltfläche „Administratorzugriff gewähren“, was dann die Fehlerseite (siehe Screenshot in meinem ursprünglichen Beitrag) und auch die Fehlermeldungen im Protokoll erzeugt.

Mir ist gerade auch die folgende Meldung weiter oben im Protokoll aufgefallen (vorangestellt mit der Zahl 46 – bedeutet dies, dass sie 46 Mal wiederholt wurde?):

`Error ensuring consistency for Group: Validation failed: Name has already been taken`

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [21. März 2025 um 03:33 UTC](https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170/4 "2025-03-21T03:33:45Z")

</div>

Dies ist ein sehr interessanter Grenzfall. Angenommen, dies ist selbst gehostet, was gibt dies zurück?

```plaintext
./launcher enter app
rails c
Group.pluck(:name, :id)

```

```plaintext
=> [["everyone", 0],
 ["moderators", 2],
 ["admins", 1],
 ["staff", 3],
 ["trust_level_0", 10],
 ["trust_level_1", 11],
 ["trust_level_2", 12],
 ["trust_level_3", 13],
 ["trust_level_4", 14]]

```

Discourse ist sehr eigen, was diese IDs angeht. Staff muss 2 sein, Admins müssen 1 sein. Wenn Sie irgendwie eine andere Gruppe mit diesem Namen haben, könnte es Probleme geben. Ich würde auch sicherstellen, dass kein Benutzer `admins` heißt.

---

<div class="post-metadata">

### Author: ![hannes\_e](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hannes_e/32/495007_2.png) [@hannes\_e](https://meta.discourse.org/u/hannes_e)
#### Post date: [21. März 2025 um 08:30 UTC](https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170/5 "2025-03-21T08:30:42Z")

</div>

Es sieht so aus (es gibt noch viele weitere Gruppen, aber sie wurden eindeutig von uns erstellt und hatten keine Ähnlichkeit mit den Systemgruppen, daher habe ich sie unten nicht aufgeführt):

```plaintext
=> [["everyone", 0],
 ["moderators", 2],
 ["admins", 1],
 ["trust_level_0", 10]
 ["trust_level_1", 11],
 ["trust_level_2", 12],
 ["trust_level_3", 13],
 ["trust_level_4", 14],
 ["Staff", 42]]

```

Mir fällt auf, dass es keine Gruppe `staff` gibt, sondern nur `Staff` – wenn `staff` immer die ID 3 hat, dann deutet das wohl darauf hin, dass jemand sie entfernt und eine neue Gruppe (ID 42) erstellt hat.

Reicht es, `staff` erneut zu erstellen, oder wie kann ich das lösen?

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [21. März 2025 um 09:02 UTC](https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170/6 "2025-03-21T09:02:34Z")

</div>

Ja, ich denke, dass das Umbenennen deiner Mitarbeitergruppe ausreicht, um das Problem zu lösen.

---

<div class="post-metadata">

### Author: ![hannes\_e](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hannes_e/32/495007_2.png) [@hannes\_e](https://meta.discourse.org/u/hannes_e)
#### Post date: [21. März 2025 um 09:20 UTC](https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170/7 "2025-03-21T09:20:16Z")

</div>

Die Benutzeroberfläche erlaubt mir nicht, dies zu tun:

 ![image](https://global.discourse-cdn.com/meta/original/4X/8/5/8/85841821289bd7aead4b0c986812f0f2077cddd5.png)

Muss ich das direkt in der Datenbank machen?

---

<div class="post-metadata">

### Author: ![hannes\_e](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hannes_e/32/495007_2.png) [@hannes\_e](https://meta.discourse.org/u/hannes_e)
#### Post date: [25. März 2025 um 13:47 UTC](https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170/8 "2025-03-25T13:47:04Z")

</div>

Ist es möglich, die Gruppe über die Befehlszeile umzubenennen, oder wie kann ich diese Situation lösen?

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [25. März 2025 um 20:35 UTC](https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170/9 "2025-03-25T20:35:52Z")

</div>

Versuchen Sie es direkt aus der Datenbank, dann sollte es sicher sein

---

<div class="post-metadata">

### Author: ![hannes\_e](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hannes_e/32/495007_2.png) [@hannes\_e](https://meta.discourse.org/u/hannes_e)
#### Post date: [26. März 2025 um 11:26 UTC](https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170/10 "2025-03-26T11:26:38Z")

</div>

Ja, das hat funktioniert! Die Gruppe existierte, aber jemand hatte sie umbenannt – da dies die Kernfunktionalität im Grunde beeinträchtigt, frage ich mich, ob die Umbenennung von Systemgruppen in der Benutzeroberfläche untersagt werden sollte.

Zu Ihrer Information, falls jemand in eine ähnliche Situation gerät:

```plaintext
docker exec -it app /bin/bash
su - postgres
psql -d discourse
discourse=# update groups set name='staff' where id=3;
\q

```

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [26. März 2025 um 20:25 UTC](https://meta.discourse.org/t/unable-to-grant-admin-rights-due-to-error/358170/11 "2025-03-26T20:25:10Z")

</div>

Ja, es sollte absolut ein Zustand sein, in den man nicht geraten kann.
