Error 500 toggling project stars: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint

https://sentry.gitlab.net/gitlab/gitlabcom/issues/963397/

PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "index_users_star_projects_on_user_id_and_project_id"
DETAIL:  Key (user_id, project_id)=(4661744, 14940934) already exists.

  active_record/connection_adapters/postgresql_adapter.rb:611:in `async_exec_params'
    @connection.exec_params(sql, type_casted_binds)
  active_record/connection_adapters/postgresql_adapter.rb:611:in `block (2 levels) in exec_no_cache'
    @connection.exec_params(sql, type_casted_binds)
  active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
    yield
  active_support/concurrency/share_lock.rb:187:in `yield_shares'
    yield
  active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
    @lock.yield_shares(compatible: [:load]) do
...
(189 additional frame(s) were not displayed)

ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "index_users_star_projects_on_user_id_and_project_id"
DETAIL:  Key (user_id, project_id)=(4661744, 14940934) already exists.
: INSERT INTO "users_star_projects" ("project_id", "user_id", "created_at", "updated_at") VALUES (14940934, 4661744, '2019-10-21 20:28:29.402445', '2019-10-21 20:28:29.402445') RETURNING "id"

ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "index_users_star_projects_on_user_id_and_project_id"
DETAIL:  Key (user_id, project_id)=(4661744, 14940934) already exists.
: INSERT INTO "users_star_projects" ("project_id", "user_id", "created_at", "updated_at") VALUES (14940934, 4661744, '2019-10-21 20:28:29.402445', '2019-10-21 20:28:29.402445') RETURNING "id"
Assignee Loading
Time tracking Loading