GitLab CE upgrade to 18.9 PG::CheckViolation ERROR on award_emoji

When upgrading the GitLab Helm Release to Chart version 9.9.0 aka GitLab 18.9.0 a DB migration error appears.

PG::CheckViolation: ERROR:  check constraint "check_8ef14b7067" of relation "award_emoji" is violated by some row
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:56:in `exec'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:56:in `block (2 levels) in raw_execute'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:1024:in `block in with_raw_connection'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.3/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:993:in `with_raw_connection'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:55:in `block in raw_execute'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.3/lib/active_support/notifications/instrumenter.rb:58:in `instrument'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:1141:in `log'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:54:in `raw_execute'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:538:in `internal_execute'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:137:in `execute'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/abstract/query_cache.rb:27:in `execute'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/postgresql/database_statements.rb:48:in `execute'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/marginalia-1.11.1/lib/marginalia.rb:71:in `execute_with_marginalia'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration/default_strategy.rb:10:in `method_missing'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1059:in `block in method_missing'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1025:in `block in say_with_time'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/benchmark-0.4.1/lib/benchmark.rb:305:in `measure'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1025:in `say_with_time'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1048:in `method_missing'
/srv/gitlab/lib/gitlab/database/migrations/constraints_helpers.rb:122:in `block in validate_check_constraint'
/srv/gitlab/lib/gitlab/database/migrations/timeout_helpers.rb:26:in `disable_statement_timeout'
/srv/gitlab/lib/gitlab/database/migrations/constraints_helpers.rb:119:in `validate_check_constraint'
/srv/gitlab/lib/gitlab/database/migrations/constraints_helpers.rb:269:in `validate_multi_column_not_null_constraint'
/srv/gitlab/db/post_migrate/20260109205636_validate_award_emoji_sharding_key_not_null_constraint.rb:7:in `up'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:997:in `public_send'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:997:in `exec_migration'
/srv/gitlab/lib/gitlab/database/migration_helpers/restrict_gitlab_schema.rb:33:in `block in exec_migration'
/srv/gitlab/lib/gitlab/database/query_analyzer.rb:94:in `within'
/srv/gitlab/lib/gitlab/database/migration_helpers/restrict_gitlab_schema.rb:30:in `exec_migration'
/srv/gitlab/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables.rb:21:in `exec_migration'
/srv/gitlab/lib/gitlab/database/migration_helpers/require_disable_ddl_transaction_for_multiple_locks.rb:71:in `exec_migration'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:978:in `block (2 levels) in migrate'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/benchmark-0.4.1/lib/benchmark.rb:305:in `measure'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:977:in `block in migrate'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:425:in `with_connection'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:976:in `migrate'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1190:in `migrate'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1539:in `block in execute_migration_in_transaction'
/srv/gitlab/lib/gitlab/database/with_lock_retries.rb:123:in `run_block'
/srv/gitlab/lib/gitlab/database/with_lock_retries.rb:134:in `block in run_block_with_lock_timeout'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/abstract/transaction.rb:616:in `block in within_new_transaction'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.3/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/abstract/transaction.rb:613:in `within_new_transaction'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:361:in `transaction'
/srv/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `public_send'
/srv/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `block in write_using_load_balancer'
/srv/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:141:in `block in read_write'
/srv/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:229:in `retry_with_backoff'
/srv/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:131:in `read_write'
/srv/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `write_using_load_balancer'
/srv/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:78:in `transaction'
/srv/gitlab/lib/gitlab/database/with_lock_retries.rb:129:in `run_block_with_lock_timeout'
/srv/gitlab/lib/gitlab/database/with_lock_retries.rb:97:in `run'
/srv/gitlab/lib/gitlab/database/migrations/lock_retry_mixin.rb:44:in `ddl_transaction'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1538:in `execute_migration_in_transaction'
/srv/gitlab/lib/gitlab/database/migrations/runner_backoff/active_record_mixin.rb:21:in `execute_migration_in_transaction'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1512:in `each'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1512:in `migrate_without_lock'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1457:in `block in migrate'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1610:in `with_advisory_lock'
/srv/gitlab/lib/gitlab/database/migrations/pg_backend_pid.rb:14:in `with_advisory_lock'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1457:in `migrate'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1264:in `up'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/migration.rb:1239:in `migrate'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/tasks/database_tasks.rb:262:in `migrate'
/srv/gitlab/vendor/bundle/ruby/3.3.0/gems/activerecord-7.2.3/lib/active_record/railties/databases.rake:93:in `block (2 levels) in <main>'
/srv/gitlab/lib/tasks/gitlab/db.rake:226:in `configure_database'
/srv/gitlab/lib/tasks/gitlab/db.rake:182:in `configure_pg_databases'
/srv/gitlab/lib/tasks/gitlab/db.rake:114:in `block (3 levels) in <main>'
Edited by 🤖 GitLab Bot 🤖