Log when .safe_find_or_create_by cannot find a row that should exist

What does this MR do and why?

In #543351 (closed) we saw that the runner API quietly returned a 404 when a replicated table was out of sync with the source table. Log an exception so that we can see the full database error for debugging.

Relates to #543351 (closed)

How to set up and validate locally

I don't have a good way other than to manually perform the upgrade steps:

  1. Install GitLab 16.11.10. To aid debugging, I enabled PostgreSQL full statement logging via postgresql['log_statement'] = 'all'.
  2. Register a project runner.
  3. Upgrade to GitLab 17.11 via the path in https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/?current=16.11.10&target=17.11.2:
  4. Attempt to run gitlab-register verify. This should generate a 404 error and return a log:
{
  "severity": "ERROR",
  "time": "2025-05-18T23:43:55.189Z",
  "correlation_id": "01JVJWGPRZD729APE9P5GTH14W",
  "meta.caller_id": "POST /api/:version/runners/verify",
  "meta.remote_ip": "x.x.x.x",
  "meta.feature_category": "runner",
  "meta.client_id": "runner/3",
  "exception.class": "ActiveRecord::RecordNotUnique",
  "exception.message": "PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint \"index_ci_runner_machines_on_runner_id_and_system_xid\"\nDETAIL:  Key (runner_id, system_xid)=(3, s_8f8333054652) already exists.\nCONTEXT:  SQL statement \"INSERT INTO ci_runner_machines_archived (\"id\",\n    \"runner_id\",\n    \"executor_type\",\n    \"created_at\",\n    \"updated_at\",\n    \"contacted_at\",\n    \"version\",\n    \"revision\",\n    \"platform\",\n    \"architecture\",\n    \"ip_address\",\n    \"config\",\n    \"system_xid\",\n    \"creation_state\",\n    \"runner_type\",\n    \"sharding_key_id\",\n    \"runtime_features\")\n  VALUES (NEW.\"id\",\n    NEW.\"runner_id\",\n    NEW.\"executor_type\",\n    NEW.\"created_at\",\n    NEW.\"updated_at\",\n    NEW.\"contacted_at\",\n    NEW.\"version\",\n    NEW.\"revision\",\n    NEW.\"platform\",\n    NEW.\"architecture\",\n    NEW.\"ip_address\",\n    NEW.\"config\",\n    NEW.\"system_xid\",\n    NEW.\"creation_state\",\n    NEW.\"runner_type\",\n    NEW.\"sharding_key_id\",\n    NEW.\"runtime_features\")\"\nPL/pgSQL function table_sync_function_e438f29263() line 25 at SQL statement\n",
  "exception.backtrace": [
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `exec_params'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `block (2 levels) in exec_no_cache'",
    "activesupport (7.0.8.7) lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'",
    "activesupport (7.0.8.7) lib/active_support/dependencies/interlock.rb:41:in `permit_concurrent_loads'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/postgresql_adapter.rb:767:in `block in exec_no_cache'",
    "activesupport (7.0.8.7) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'",
    "activesupport (7.0.8.7) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'",
    "activesupport (7.0.8.7) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'",
    "activesupport (7.0.8.7) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/abstract_adapter.rb:752:in `block in log'",
    "activesupport (7.0.8.7) lib/active_support/notifications/instrumenter.rb:24:in `instrument'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/abstract_adapter.rb:743:in `log'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/postgresql_adapter.rb:766:in `exec_no_cache'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/postgresql_adapter.rb:745:in `execute_and_clear'",
    "marginalia (1.11.1) lib/marginalia.rb:91:in `execute_and_clear_with_marginalia'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/postgresql/database_statements.rb:54:in `exec_query'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/abstract/database_statements.rb:132:in `exec_insert'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/postgresql/database_statements.rb:88:in `exec_insert'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/abstract/database_statements.rb:167:in `insert'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/abstract/query_cache.rb:22:in `insert'",
    "lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `public_send'",
    "lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `block in write_using_load_balancer'",
    "lib/gitlab/database/load_balancing/load_balancer.rb:141:in `block in read_write'",
    "lib/gitlab/database/load_balancing/load_balancer.rb:228:in `retry_with_backoff'",
    "lib/gitlab/database/load_balancing/load_balancer.rb:130:in `read_write'",
    "lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `write_using_load_balancer'",
    "lib/gitlab/database/load_balancing/connection_proxy.rb:61:in `block (2 levels) in <class:ConnectionProxy>'",
    "activerecord (7.0.8.7) lib/active_record/persistence.rb:496:in `_insert_record'",
    "activerecord (7.0.8.7) lib/active_record/persistence.rb:1098:in `_create_record'",
    "activerecord (7.0.8.7) lib/active_record/counter_cache.rb:166:in `_create_record'",
    "activerecord (7.0.8.7) lib/active_record/locking/optimistic.rb:84:in `_create_record'",
    "activerecord (7.0.8.7) lib/active_record/attribute_methods/dirty.rb:222:in `_create_record'",
    "activerecord (7.0.8.7) lib/active_record/callbacks.rb:459:in `block in _create_record'",
    "activesupport (7.0.8.7) lib/active_support/callbacks.rb:107:in `run_callbacks'",
    "activesupport (7.0.8.7) lib/active_support/callbacks.rb:929:in `_run_create_callbacks'",
    "activerecord (7.0.8.7) lib/active_record/callbacks.rb:459:in `_create_record'",
    "activerecord (7.0.8.7) lib/active_record/timestamp.rb:108:in `_create_record'",
    "activerecord (7.0.8.7) lib/active_record/persistence.rb:1069:in `create_or_update'",
    "activerecord (7.0.8.7) lib/active_record/callbacks.rb:455:in `block in create_or_update'",
    "activesupport (7.0.8.7) lib/active_support/callbacks.rb:118:in `block in run_callbacks'",
    "activerecord (7.0.8.7) lib/active_record/autosave_association.rb:370:in `around_save_collection_association'",
    "activesupport (7.0.8.7) lib/active_support/callbacks.rb:127:in `block in run_callbacks'",
    "activesupport (7.0.8.7) lib/active_support/callbacks.rb:138:in `run_callbacks'",
    "activesupport (7.0.8.7) lib/active_support/callbacks.rb:929:in `_run_save_callbacks'",
    "activerecord (7.0.8.7) lib/active_record/callbacks.rb:455:in `create_or_update'",
    "activerecord (7.0.8.7) lib/active_record/timestamp.rb:126:in `create_or_update'",
    "activerecord (7.0.8.7) lib/active_record/persistence.rb:615:in `save'",
    "activerecord (7.0.8.7) lib/active_record/validations.rb:47:in `save'",
    "activerecord (7.0.8.7) lib/active_record/transactions.rb:298:in `block in save'",
    "activerecord (7.0.8.7) lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/abstract/database_statements.rb:314:in `transaction'",
    "lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `public_send'",
    "lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `block in write_using_load_balancer'",
    "lib/gitlab/database/load_balancing/load_balancer.rb:141:in `block in read_write'",
    "lib/gitlab/database/load_balancing/load_balancer.rb:228:in `retry_with_backoff'",
    "lib/gitlab/database/load_balancing/load_balancer.rb:130:in `read_write'",
    "lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `write_using_load_balancer'",
    "lib/gitlab/database/load_balancing/connection_proxy.rb:78:in `transaction'",
    "activerecord (7.0.8.7) lib/active_record/transactions.rb:350:in `with_transaction_returning_status'",
    "activerecord (7.0.8.7) lib/active_record/transactions.rb:298:in `save'",
    "activerecord (7.0.8.7) lib/active_record/suppressor.rb:50:in `save'",
    "activerecord (7.0.8.7) lib/active_record/persistence.rb:38:in `create'",
    "activerecord (7.0.8.7) lib/active_record/relation.rb:866:in `_create'",
    "activerecord (7.0.8.7) lib/active_record/relation.rb:100:in `block in create'",
    "activerecord (7.0.8.7) lib/active_record/relation.rb:881:in `_scoping'",
    "activerecord (7.0.8.7) lib/active_record/relation.rb:428:in `scoping'",
    "activerecord (7.0.8.7) lib/active_record/relation.rb:100:in `create'",
    "app/models/application_record.rb:92:in `block in safe_find_or_create_by'",
    "app/models/concerns/cross_database_modification.rb:91:in `block in transaction'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'",
    "activesupport (7.0.8.7) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'",
    "activesupport (7.0.8.7) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'",
    "activesupport (7.0.8.7) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'",
    "activesupport (7.0.8.7) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'",
    "activerecord (7.0.8.7) lib/active_record/connection_adapters/abstract/database_statements.rb:316:in `transaction'",
    "lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `public_send'",
    "lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `block in write_using_load_balancer'",
    "lib/gitlab/database/load_balancing/load_balancer.rb:141:in `block in read_write'",
    "lib/gitlab/database/load_balancing/load_balancer.rb:228:in `retry_with_backoff'",
    "lib/gitlab/database/load_balancing/load_balancer.rb:130:in `read_write'",
    "lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `write_using_load_balancer'",
    "lib/gitlab/database/load_balancing/connection_proxy.rb:78:in `transaction'",
    "activerecord (7.0.8.7) lib/active_record/transactions.rb:209:in `transaction'",
    "lib/gitlab/database.rb:399:in `block in transaction'",
    "activesupport (7.0.8.7) lib/active_support/notifications.rb:206:in `block in instrument'",
    "activesupport (7.0.8.7) lib/active_support/notifications/instrumenter.rb:24:in `instrument'",
    "activesupport (7.0.8.7) lib/active_support/notifications.rb:206:in `instrument'",
    "lib/gitlab/database.rb:398:in `transaction'",
    "app/models/concerns/cross_database_modification.rb:82:in `transaction'",
    "app/models/application_record.rb:92:in `safe_find_or_create_by'",
    "app/models/application_record.rb:62:in `safe_find_or_create_by!'",
    "app/models/ci/runner.rb:545:in `ensure_manager'",
    "lib/api/ci/helpers/runner.rb:59:in `block in current_runner_manager'",
    "gems/gitlab-utils/lib/gitlab/utils/strong_memoize.rb:34:in `strong_memoize'",
    "lib/api/ci/helpers/runner.rb:57:in `current_runner_manager'",
    "lib/api/ci/helpers/runner.rb:23:in `authenticate_runner!'",
    "lib/api/ci/runner.rb:123:in `block (2 levels) in <class:Runner>'",
    "grape (2.0.0) lib/grape/endpoint.rb:58:in `call'",
    "grape (2.0.0) lib/grape/endpoint.rb:58:in `block (2 levels) in generate_api_method'",
    "activesupport (7.0.8.7) lib/active_support/notifications.rb:208:in `instrument'",
    "grape (2.0.0) lib/grape/endpoint.rb:57:in `block in generate_api_method'",
    "grape (2.0.0) lib/grape/endpoint.rb:328:in `execute'",
    "grape (2.0.0) lib/grape/endpoint.rb:260:in `block in run'",
    "activesupport (7.0.8.7) lib/active_support/notifications.rb:208:in `instrument'",
    "grape (2.0.0) lib/grape/endpoint.rb:240:in `run'",
    "grape (2.0.0) lib/grape/endpoint.rb:316:in `block in build_stack'",
    "grape (2.0.0) lib/grape/middleware/base.rb:36:in `call!'",
    "grape (2.0.0) lib/grape/middleware/base.rb:29:in `call'",
    "grape (2.0.0) lib/grape/middleware/base.rb:36:in `call!'",
    "grape (2.0.0) lib/grape/middleware/base.rb:29:in `call'",
    "ee/lib/gitlab/middleware/ip_restrictor.rb:14:in `block in call'",
    "lib/gitlab/ip_address_state.rb:11:in `with'",
    "ee/lib/gitlab/middleware/ip_restrictor.rb:13:in `call'",
    "grape (2.0.0) lib/grape/middleware/base.rb:36:in `call!'",
    "grape (2.0.0) lib/grape/middleware/base.rb:29:in `call'",
    "lib/api/api_guard.rb:247:in `call'",
    "grape (2.0.0) lib/grape/middleware/base.rb:36:in `call!'",
    "grape (2.0.0) lib/grape/middleware/base.rb:29:in `call'",
    "rack-oauth2 (2.2.1) lib/rack/oauth2/server/resource.rb:20:in `_call'",
    "rack-oauth2 (2.2.1) lib/rack/oauth2/server/resource/bearer.rb:8:in `_call'",
    "rack-oauth2 (2.2.1) lib/rack/oauth2/server/abstract/handler.rb:17:in `call'",
    "grape (2.0.0) lib/grape/middleware/error.rb:39:in `block in call!'",
    "grape (2.0.0) lib/grape/middleware/error.rb:38:in `catch'",
    "grape (2.0.0) lib/grape/middleware/error.rb:38:in `call!'",
    "grape (2.0.0) lib/grape/middleware/base.rb:29:in `call'",
    "grape_logging (1.8.4) lib/grape_logging/middleware/request_logger.rb:60:in `block in call!'",
    "grape_logging (1.8.4) lib/grape_logging/middleware/request_logger.rb:58:in `catch'",
    "grape_logging (1.8.4) lib/grape_logging/middleware/request_logger.rb:58:in `call!'",
    "grape (2.0.0) lib/grape/middleware/base.rb:29:in `call'",
    "rack (2.2.13) lib/rack/head.rb:12:in `call'",
    "grape (2.0.0) lib/grape/endpoint.rb:224:in `call!'",
    "grape (2.0.0) lib/grape/endpoint.rb:218:in `call'",
    "grape (2.0.0) lib/grape/router/route.rb:58:in `exec'",
    "grape (2.0.0) lib/grape/router.rb:120:in `process_route'",
    "grape (2.0.0) lib/grape/router.rb:74:in `block in identity'",
    "grape (2.0.0) lib/grape/router.rb:94:in `transaction'",
    "grape (2.0.0) lib/grape/router.rb:72:in `identity'",
    "grape (2.0.0) lib/grape/router.rb:56:in `block in call'",
    "grape (2.0.0) lib/grape/router.rb:136:in `with_optimization'",
    "grape (2.0.0) lib/grape/router.rb:55:in `call'",
    "grape (2.0.0) lib/grape/api/instance.rb:165:in `call'",
    "grape (2.0.0) lib/grape/api/instance.rb:70:in `call!'",
    "grape (2.0.0) lib/grape/api/instance.rb:65:in `call'",
    "actionpack (7.0.8.7) lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'",
    "actionpack (7.0.8.7) lib/action_dispatch/routing/mapper.rb:48:in `serve'",
    "actionpack (7.0.8.7) lib/action_dispatch/journey/router.rb:50:in `block in serve'",
    "actionpack (7.0.8.7) lib/action_dispatch/journey/router.rb:32:in `each'",
    "actionpack (7.0.8.7) lib/action_dispatch/journey/router.rb:32:in `serve'",
    "actionpack (7.0.8.7) lib/action_dispatch/routing/route_set.rb:852:in `call'",
    "gitlab-experiment (0.9.1) lib/gitlab/experiment/middleware.rb:19:in `call'",
    "flipper (0.28.3) lib/flipper/middleware/memoizer.rb:72:in `memoized_call'",
    "flipper (0.28.3) lib/flipper/middleware/memoizer.rb:37:in `call'",
    "lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call'",
    "lib/gitlab/middleware/sidekiq_shard_awareness_validation.rb:20:in `block in call'",
    "lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'",
    "lib/gitlab/middleware/sidekiq_shard_awareness_validation.rb:20:in `call'",
    "lib/gitlab/middleware/memory_report.rb:13:in `call'",
    "lib/gitlab/middleware/speedscope.rb:13:in `call'",
    "lib/gitlab/database/load_balancing/rack_middleware.rb:23:in `call'",
    "lib/gitlab/middleware/rails_queue_duration.rb:33:in `call'",
    "lib/gitlab/etag_caching/middleware.rb:21:in `call'",
    "lib/gitlab/metrics/rack_middleware.rb:16:in `block in call'",
    "lib/gitlab/metrics/web_transaction.rb:46:in `run'",
    "lib/gitlab/metrics/rack_middleware.rb:16:in `call'",
    "lib/gitlab/middleware/go.rb:21:in `call'",
    "lib/gitlab/middleware/query_analyzer.rb:11:in `block in call'",
    "lib/gitlab/database/query_analyzer.rb:83:in `within'",
    "lib/gitlab/middleware/query_analyzer.rb:11:in `call'",
    "lib/ci/job_token/middleware.rb:11:in `call'",
    "batch-loader (2.0.5) lib/batch_loader/middleware.rb:11:in `call'",
    "rack-attack (6.7.0) lib/rack/attack.rb:103:in `call'",
    "apollo_upload_server (2.1.6) lib/apollo_upload_server/middleware.rb:19:in `call'",
    "lib/gitlab/middleware/multipart.rb:173:in `call'",
    "rack-attack (6.7.0) lib/rack/attack.rb:127:in `call'",
    "warden (1.2.9) lib/warden/manager.rb:36:in `block in call'",
    "warden (1.2.9) lib/warden/manager.rb:34:in `catch'",
    "warden (1.2.9) lib/warden/manager.rb:34:in `call'",
    "rack-cors (2.0.2) lib/rack/cors.rb:102:in `call'",
    "rack (2.2.13) lib/rack/tempfile_reaper.rb:15:in `call'",
    "rack (2.2.13) lib/rack/etag.rb:27:in `call'",
    "rack (2.2.13) lib/rack/conditional_get.rb:40:in `call'",
    "rack (2.2.13) lib/rack/head.rb:12:in `call'",
    "actionpack (7.0.8.7) lib/action_dispatch/http/permissions_policy.rb:38:in `call'",
    "actionpack (7.0.8.7) lib/action_dispatch/http/content_security_policy.rb:39:in `call'",
    "lib/gitlab/middleware/read_only/controller.rb:50:in `call'",
    "lib/gitlab/middleware/read_only.rb:18:in `call'",
    "lib/gitlab/middleware/unauthenticated_session_expiry.rb:18:in `call'",
    "rack (2.2.13) lib/rack/session/abstract/id.rb:266:in `context'",
    "rack (2.2.13) lib/rack/session/abstract/id.rb:260:in `call'",
    "lib/gitlab/middleware/secure_headers.rb:11:in `call'",
    "actionpack (7.0.8.7) lib/action_dispatch/middleware/cookies.rb:704:in `call'",
    "lib/gitlab/middleware/same_site_cookies.rb:27:in `call'",
    "actionpack (7.0.8.7) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'",
    "activesupport (7.0.8.7) lib/active_support/callbacks.rb:99:in `run_callbacks'",
    "actionpack (7.0.8.7) lib/action_dispatch/middleware/callbacks.rb:26:in `call'",
    "sentry-rails (5.22.1) lib/sentry/rails/rescued_exception_interceptor.rb:14:in `call'",
    "actionpack (7.0.8.7) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'",
    "lib/gitlab/middleware/path_traversal_check.rb:35:in `call'",
    "lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'",
    "sentry-ruby (5.22.1) lib/sentry/rack/capture_exceptions.rb:30:in `block (2 levels) in call'",
    "sentry-ruby (5.22.1) lib/sentry/hub.rb:269:in `with_session_tracking'",
    "sentry-ruby (5.22.1) lib/sentry-ruby.rb:416:in `with_session_tracking'",
    "sentry-ruby (5.22.1) lib/sentry/rack/capture_exceptions.rb:21:in `block in call'",
    "sentry-ruby (5.22.1) lib/sentry/hub.rb:59:in `with_scope'",
    "sentry-ruby (5.22.1) lib/sentry-ruby.rb:396:in `with_scope'",
    "sentry-ruby (5.22.1) lib/sentry/rack/capture_exceptions.rb:20:in `call'",
    "actionpack (7.0.8.7) lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'",
    "lib/gitlab/middleware/basic_health_check.rb:25:in `call'",
    "lograge (0.11.2) lib/lograge/rails_ext/rack/logger.rb:15:in `call_app'",
    "railties (7.0.8.7) lib/rails/rack/logger.rb:25:in `block in call'",
    "activesupport (7.0.8.7) lib/active_support/tagged_logging.rb:99:in `block in tagged'",
    "activesupport (7.0.8.7) lib/active_support/tagged_logging.rb:37:in `tagged'",
    "activesupport (7.0.8.7) lib/active_support/tagged_logging.rb:99:in `tagged'",
    "railties (7.0.8.7) lib/rails/rack/logger.rb:25:in `call'",
    "actionpack (7.0.8.7) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'",
    "lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'",
    "lib/gitlab/middleware/request_context.rb:15:in `call'",
    "lib/gitlab/middleware/webhook_recursion_detection.rb:15:in `call'",
    "request_store (1.7.0) lib/request_store/middleware.rb:19:in `call'",
    "rack (2.2.13) lib/rack/method_override.rb:24:in `call'",
    "rack (2.2.13) lib/rack/runtime.rb:22:in `call'",
    "rack-timeout (0.7.0) lib/rack/timeout/core.rb:154:in `block in call'",
    "rack-timeout (0.7.0) lib/rack/timeout/support/timeout.rb:19:in `timeout'",
    "rack-timeout (0.7.0) lib/rack/timeout/core.rb:153:in `call'",
    "config/initializers/fix_local_cache_middleware.rb:11:in `call'",
    "lib/gitlab/middleware/compressed_json.rb:44:in `call'",
    "actionpack (7.0.8.7) lib/action_dispatch/middleware/executor.rb:14:in `call'",
    "lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call'",
    "rack (2.2.13) lib/rack/sendfile.rb:110:in `call'",
    "lib/gitlab/middleware/sidekiq_web_static.rb:20:in `call'",
    "lib/gitlab/metrics/requests_rack_middleware.rb:83:in `call'",
    "gitlab-labkit (0.37.0) lib/labkit/middleware/rack.rb:22:in `block in call'",
    "gitlab-labkit (0.37.0) lib/labkit/context.rb:35:in `with_context'",
    "gitlab-labkit (0.37.0) lib/labkit/middleware/rack.rb:21:in `call'",
    "actionpack (7.0.8.7) lib/action_dispatch/middleware/request_id.rb:26:in `call'",
    "actionpack (7.0.8.7) lib/action_dispatch/middleware/host_authorization.rb:131:in `call'",
    "railties (7.0.8.7) lib/rails/engine.rb:530:in `call'",
    "railties (7.0.8.7) lib/rails/railtie.rb:226:in `public_send'",
    "railties (7.0.8.7) lib/rails/railtie.rb:226:in `method_missing'",
    "lib/gitlab/middleware/release_env.rb:12:in `call'",
    "rack (2.2.13) lib/rack/urlmap.rb:74:in `block in call'",
    "rack (2.2.13) lib/rack/urlmap.rb:58:in `each'",
    "rack (2.2.13) lib/rack/urlmap.rb:58:in `call'",
    "puma (6.5.0) lib/puma/configuration.rb:279:in `call'",
    "puma (6.5.0) lib/puma/request.rb:99:in `block in handle_request'",
    "puma (6.5.0) lib/puma/thread_pool.rb:389:in `with_force_shutdown'",
    "puma (6.5.0) lib/puma/request.rb:98:in `handle_request'",
    "puma (6.5.0) lib/puma/server.rb:468:in `process_client'",
    "puma (6.5.0) lib/puma/server.rb:249:in `block in run'",
    "puma (6.5.0) lib/puma/thread_pool.rb:166:in `block in spawn_thread'"
  ],
  "exception.cause_class": "PG::UniqueViolation",
  "exception.sql": "/*application:web,correlation_id:01JVJWGPRZD729APE9P5GTH14W,endpoint_id:POST /api/:version/runners/verify,db_config_database:gitlabhq_production,db_config_name:ci*/ INSERT INTO \"ci_runner_machines\" (\"runner_id\", \"created_at\", \"updated_at\", \"runner_type\", \"system_xid\") VALUES ($1, $2, $3, $4, $5) RETURNING \"id\"",
  "user.username": null,
  "tags.program": "web",
  "tags.locale": "en",
  "tags.feature_category": "runner",
  "tags.correlation_id": "01JVJWGPRZD729APE9P5GTH14W",
  "extra.args": [
    {
      "runner_id": 3,
      "system_xid": "s_8f8333054652"
    }
  ]
}

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Stan Hu

Merge request reports

Loading