# Anmeldungsfehler: PG::UniqueViolation (FEHLER: doppelter Schlüsselwert verletzt eindeutige Beschränkung

**URL:** https://meta.discourse.org/t/signup-error-pg-uniqueviolation-error-duplicate-key-value-violates-unique-constraint/172572
**Category:** Support
**Created:** [7. Dezember 2020 um 23:34 UTC](https://meta.discourse.org/t/signup-error-pg-uniqueviolation-error-duplicate-key-value-violates-unique-constraint/172572 "2020-12-07T23:34:51Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Ed\_Bobkov](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_bobkov/32/200014_2.png) [@Ed\_Bobkov](https://meta.discourse.org/u/Ed_Bobkov)
#### Post date: [7. Dezember 2020 um 23:34 UTC](https://meta.discourse.org/t/signup-error-pg-uniqueviolation-error-duplicate-key-value-violates-unique-constraint/172572/1 "2020-12-07T23:34:51Z")

</div>

Hallo! Am Site wurden keine Änderungen vorgenommen.

Neue Benutzer haben begonnen, über diesen Fehler zu berichten:

`PG::UniqueViolation (ERROR: duplicate key value violates unique constraint "idx_category_users_category_id_user_id" DETAIL: Key (category_id, user_id)=(55, 1691) already exists. ) app/models/user.rb`

Im Detail:

```plaintext
Nachricht (2 gemeldete Kopien)

PG::UniqueViolation (ERROR: duplicate key value violates unique constraint "idx_category_users_category_id_user_id"
DETAIL: Key (category_id, user_id)=(55, 1691) already exists.
)
app/models/user.rb:1499:in `set_default_categories_preferences'
app/controllers/users_controller.rb:629:in `create'
app/controllers/application_controller.rb:358:in `block in with_resolved_locale'
app/controllers/application_controller.rb:358:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:354:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:22:in `call'
lib/middleware/request_tracker.rb:176:in `call'

Rückverfolgung

rack-mini-profiler (2.2.0) lib/patches/db/pg.rb:110:in `exec'
rack-mini-profiler (2.2.0) lib/patches/db/pg.rb:110:in `async_exec'
mini_sql (0.3) lib/mini_sql/postgres/connection.rb:201:in `run'
mini_sql (0.3) lib/mini_sql/postgres/connection.rb:173:in `exec'
app/models/user.rb:1499:in `set_default_categories_preferences'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:428:in `block in make_lambda'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:238:in `block in halting_and_conditional'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:517:in `block in invoke_after'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:517:in `each'
activesupport (6.0.3.3) lib/active_support/callbacks.rb:517:in `invoke_after'

Umgebung

```

```plaintext
rack-mini-profiler (2.2.0) lib/patches/db/pg.rb:110:in `exec'

rack-mini-profiler (2.2.0) lib/patches/db/pg.rb:110:in `async_exec'

mini_sql (0.3) lib/mini_sql/postgres/connection.rb:201:in `run'

mini_sql (0.3) lib/mini_sql/postgres/connection.rb:173:in `exec'

app/models/user.rb:1499:in `set_default_categories_preferences'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:428:in `block in make_lambda'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:238:in `block in halting_and_conditional'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:517:in `block in invoke_after'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:517:in `each'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:517:in `invoke_after'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:136:in `run_callbacks'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:825:in `_run_create_callbacks'

activerecord (6.0.3.3) lib/active_record/callbacks.rb:331:in `_create_record'

activerecord (6.0.3.3) lib/active_record/timestamp.rb:110:in `_create_record'

activerecord (6.0.3.3) lib/active_record/persistence.rb:905:in `create_or_update'

activerecord (6.0.3.3) lib/active_record/callbacks.rb:327:in `block in create_or_update'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:135:in `run_callbacks'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:825:in `_run_save_callbacks'

activerecord (6.0.3.3) lib/active_record/callbacks.rb:327:in `create_or_update'

activerecord (6.0.3.3) lib/active_record/timestamp.rb:128:in `create_or_update'

activerecord (6.0.3.3) lib/active_record/persistence.rb:470:in `save'

activerecord (6.0.3.3) lib/active_record/validations.rb:47:in `save'

activerecord (6.0.3.3) lib/active_record/transactions.rb:314:in `block in save'

activerecord (6.0.3.3) lib/active_record/transactions.rb:375:in `block in with_transaction_returning_status'

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `block in transaction'

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'

activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/transaction.rb:278:in `within_new_transaction'

activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `transaction'

activerecord (6.0.3.3) lib/active_record/transactions.rb:212:in `transaction'

activerecord (6.0.3.3) lib/active_record/transactions.rb:366:in `with_transaction_returning_status'

activerecord (6.0.3.3) lib/active_record/transactions.rb:314:in `save'

activerecord (6.0.3.3) lib/active_record/suppressor.rb:44:in `save'

app/controllers/users_controller.rb:629:in `create'

actionpack (6.0.3.3) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack (6.0.3.3) lib/abstract_controller/base.rb:195:in `process_action'

actionpack (6.0.3.3) lib/action_controller/metal/rendering.rb:30:in `process_action'

actionpack (6.0.3.3) lib/abstract_controller/callbacks.rb:42:in `block in process_action'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:112:in `block in run_callbacks'

app/controllers/application_controller.rb:358:in `block in with_resolved_locale'

i18n (1.8.5) lib/i18n.rb:313:in `with_locale'

app/controllers/application_controller.rb:358:in `with_resolved_locale'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:121:in `block in run_callbacks'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:139:in `run_callbacks'

actionpack (6.0.3.3) lib/abstract_controller/callbacks.rb:41:in `process_action'

actionpack (6.0.3.3) lib/action_controller/metal/rescue.rb:22:in `process_action'

actionpack (6.0.3.3) lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'

activesupport (6.0.3.3) lib/active_support/notifications.rb:180:in `block in instrument'

activesupport (6.0.3.3) lib/active_support/notifications/instrumenter.rb:24:in `instrument'

activesupport (6.0.3.3) lib/active_support/notifications.rb:180:in `instrument'

actionpack (6.0.3.3) lib/action_controller/metal/instrumentation.rb:32:in `process_action'

actionpack (6.0.3.3) lib/action_controller/metal/params_wrapper.rb:245:in `process_action'

activerecord (6.0.3.3) lib/active_record/railties/controller_runtime.rb:27:in `process_action'

actionpack (6.0.3.3) lib/abstract_controller/base.rb:136:in `process'

actionview (6.0.3.3) lib/action_view/rendering.rb:39:in `process'

rack-mini-profiler (2.2.0) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'

actionpack (6.0.3.3) lib/action_controller/metal.rb:190:in `dispatch'

actionpack (6.0.3.3) lib/action_controller/metal.rb:254:in `dispatch'

actionpack (6.0.3.3) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'

actionpack (6.0.3.3) lib/action_dispatch/routing/route_set.rb:33:in `serve'

actionpack (6.0.3.3) lib/action_dispatch/journey/router.rb:49:in `block in serve'

actionpack (6.0.3.3) lib/action_dispatch/journey/router.rb:32:in `each'

actionpack (6.0.3.3) lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack (6.0.3.3) lib/action_dispatch/routing/route_set.rb:834:in `call'

lib/middleware/omniauth_bypass_middleware.rb:68:in `call'

rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'

rack (2.2.3) lib/rack/conditional_get.rb:40:in `call'

rack (2.2.3) lib/rack/head.rb:12:in `call'

lib/content_security_policy/middleware.rb:12:in `call'

lib/middleware/anonymous_cache.rb:354:in `call'

rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'

rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'

actionpack (6.0.3.3) lib/action_dispatch/middleware/cookies.rb:648:in `call'

actionpack (6.0.3.3) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'

activesupport (6.0.3.3) lib/active_support/callbacks.rb:101:in `run_callbacks'

actionpack (6.0.3.3) lib/action_dispatch/middleware/callbacks.rb:26:in `call'

actionpack (6.0.3.3) lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'

actionpack (6.0.3.3) lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'

actionpack (6.0.3.3) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'

logster (2.9.4) lib/logster/middleware/reporter.rb:43:in `call'

railties (6.0.3.3) lib/rails/rack/logger.rb:37:in `call_app'

railties (6.0.3.3) lib/rails/rack/logger.rb:28:in `call'

config/initializers/100-quiet_logger.rb:23:in `call'

config/initializers/100-silence_logger.rb:31:in `call'

actionpack (6.0.3.3) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'

actionpack (6.0.3.3) lib/action_dispatch/middleware/request_id.rb:27:in `call'

lib/middleware/enforce_hostname.rb:22:in `call'

rack (2.2.3) lib/rack/method_override.rb:24:in `call'

actionpack (6.0.3.3) lib/action_dispatch/middleware/executor.rb:14:in `call'

rack (2.2.3) lib/rack/sendfile.rb:110:in `call'

actionpack (6.0.3.3) lib/action_dispatch/middleware/host_authorization.rb:76:in `call'

rack-mini-profiler (2.2.0) lib/mini_profiler/profiler.rb:246:in `call'

message_bus (3.3.4) lib/message_bus/rack/middleware.rb:61:in `call'

lib/middleware/request_tracker.rb:176:in `call'

railties (6.0.3.3) lib/rails/engine.rb:527:in `call'

railties (6.0.3.3) lib/rails/railtie.rb:190:in `public_send'

railties (6.0.3.3) lib/rails/railtie.rb:190:in `method_missing'

rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'

rack (2.2.3) lib/rack/urlmap.rb:58:in `each'

rack (2.2.3) lib/rack/urlmap.rb:58:in `call'

unicorn (5.7.0) lib/unicorn/http_server.rb:632:in `process_client'

unicorn (5.7.0) lib/unicorn/http_server.rb:728:in `worker_loop'

unicorn (5.7.0) lib/unicorn/http_server.rb:548:in `spawn_missing_workers'

unicorn (5.7.0) lib/unicorn/http_server.rb:144:in `start'

unicorn (5.7.0) bin/unicorn:128:in `<top (required)>'

vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `load'

vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `<main>'

```

Ich verwende die neueste Version von Discourse.

Bitte helft mir, das Problem zu beheben.

---

<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: [7. Dezember 2020 um 23:51 UTC](https://meta.discourse.org/t/signup-error-pg-uniqueviolation-error-duplicate-key-value-violates-unique-constraint/172572/2 "2020-12-07T23:51:07Z")

</div>

> [@Ed\_Bobkov](#):
>
> `set_default_categories_preferences`

Es scheint, als gäbe es in Ihren automatisch beobachteten Gruppen eine Duplizierung. Ich bin mir nicht sicher, wie das möglich ist, aber könnten Sie versuchen, die Site-Einstellung für die automatische Beobachtung zurückzusetzen?

---

<div class="post-metadata">

### Author: ![Ed\_Bobkov](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_bobkov/32/200014_2.png) [@Ed\_Bobkov](https://meta.discourse.org/u/Ed_Bobkov)
#### Post date: [7. Dezember 2020 um 23:55 UTC](https://meta.discourse.org/t/signup-error-pg-uniqueviolation-error-duplicate-key-value-violates-unique-constraint/172572/3 "2020-12-07T23:55:27Z")

</div>

Lieber Sam, du bist großartig!

Ich habe dieses Problem selbst verursacht. Ich habe eine Standard-Beobachtungskategorie für Benutzer mit Trust\_level\_0 festgelegt. Das hat ein Problem verursacht, und die Anmeldungen sind gescheitert. Also habe ich die beobachtete Kategorie für diese Gruppe gelöscht, und jetzt funktionieren die Anmeldungen wieder.

---

<div class="post-metadata">

### Author: ![solarsimon](https://avatars.discourse-cdn.com/v4/letter/s/d07c76/32.png) [@solarsimon](https://meta.discourse.org/u/solarsimon)
#### Post date: [18. Januar 2021 um 15:50 UTC](https://meta.discourse.org/t/signup-error-pg-uniqueviolation-error-duplicate-key-value-violates-unique-constraint/172572/4 "2021-01-18T15:50:10Z")

</div>

> [@Ed\_Bobkov](#):
>
> Ich habe eine Standard-Beobachtungskategorie für Benutzer mit Vertrauensstufe 0 festgelegt.

Ich habe das Gleiche getan und habe das gleiche Problem. Neue Registrierungen sind nicht möglich.

Aber nutzen wir die Funktion nicht wie vorgesehen? Ich möchte, dass neue Benutzer eine bestimmte Kategorie sofort beobachten.  
Wie kann ich das umsetzen?

---

<div class="post-metadata">

### Author: ![Ed\_Bobkov](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_bobkov/32/200014_2.png) [@Ed\_Bobkov](https://meta.discourse.org/u/Ed_Bobkov)
#### Post date: [19. Januar 2021 um 12:02 UTC](https://meta.discourse.org/t/signup-error-pg-uniqueviolation-error-duplicate-key-value-violates-unique-constraint/172572/5 "2021-01-19T12:02:17Z")

</div>

Nein, ich habe nicht herausgefunden, wie das geht. Vielleicht ist es mit Gruppen möglich? Neue Benutzer automatisch standardmäßig einer bestimmten Gruppe hinzufügen und diese Gruppe dazu veranlassen, ein bestimmtes Tag oder eine Kategorie zu verfolgen.

Es ist für mich seltsam, dass man das mit Vertrauensstufen nicht umsetzen kann.

Lass mich wissen, ob du das mit einer Gruppe hinbekommen hast.

---

<div class="post-metadata">

### Author: ![vinothkannans](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/vinothkannans/32/86465_2.png) [@vinothkannans](https://meta.discourse.org/u/vinothkannans)
#### Post date: [30. März 2023 um 15:27 UTC](https://meta.discourse.org/t/signup-error-pg-uniqueviolation-error-duplicate-key-value-violates-unique-constraint/172572/7 "2023-03-30T15:27:48Z")

</div>

Das Problem wurde nun durch die folgenden Commits behoben

> <https://github.com/discourse/discourse/commit/ed6f7b1e6d9ead915530a7bd193566286889d1c6>
>
> When we renamed the \`default\_categories\_regular\` to \`default\_categories\_normal\` …we missed a site setting validation method. It allowed the duplicate category ids in \`default\_categories\_normal\` site setting and caused the problem in user registration process.
> 
> https://github.com/discourse/discourse/commit/5176c689e953f3c91abf97ec45cd528ef36cdee1

> <https://github.com/discourse/discourse/commit/08ff6eebad83d921ad0d175aa02332fb04333ff7>
>
> \`default\_categories\_\*\` site settings will update the category preferences on use…r creation. But it shouldn't update the user's category preference if a group's setting already updated it for that user.

---

<div class="post-metadata">

### Author: ![vinothkannans](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/vinothkannans/32/86465_2.png) [@vinothkannans](https://meta.discourse.org/u/vinothkannans)
#### Post date: [30. März 2023 um 15:27 UTC](https://meta.discourse.org/t/signup-error-pg-uniqueviolation-error-duplicate-key-value-violates-unique-constraint/172572/8 "2023-03-30T15:27:55Z")

</div>


