Mysql2::Error: Duplicate entry '30473-20580' for key 'publication_views.index_publication_views_on_user_id_and_publication_id'
Backtrace
app/models/publication_views_mapper.rb:57:in `each'
app/models/publication_views_mapper.rb:57:in `save_views'
app/models/publication_views_mapper.rb:30:in `mapper'
app/models/publication_views_mapper.rb:16:in `map_publications'
app/controllers/api/v1/publications_controller.rb:108:in `show'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `_query'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `block in query'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:130:in `handle_interrupt'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:130:in `query'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:201:in `block (2 levels) in execute'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:200:in `block in execute'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_adapter.rb:722:in `block (2 levels) in log'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_adapter.rb:721:in `block in log'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_adapter.rb:712:in `log'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:199:in `execute'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/mysql/database_statements.rb:41:in `execute'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:210:in `execute_and_free'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/mysql/database_statements.rb:46:in `exec_query'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/database_statements.rb:135:in `exec_insert'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/database_statements.rb:166:in `insert'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/query_cache.rb:22:in `insert'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/persistence.rb:375:in `_insert_record'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/persistence.rb:932:in `_create_record'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/counter_cache.rb:166:in `_create_record'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/locking/optimistic.rb:70:in `_create_record'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/attribute_methods/dirty.rb:211:in `_create_record'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/callbacks.rb:331:in `block in _create_record'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:135:in `run_callbacks'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:825:in `_run_create_callbacks'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/callbacks.rb:331:in `_create_record'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/timestamp.rb:110:in `_create_record'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/persistence.rb:905:in `create_or_update'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/callbacks.rb:327:in `block in create_or_update'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:135:in `run_callbacks'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:825:in `_run_save_callbacks'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/callbacks.rb:327:in `create_or_update'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/timestamp.rb:128:in `create_or_update'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/persistence.rb:470:in `save'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/validations.rb:47:in `save'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/transactions.rb:314:in `block in save'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/transactions.rb:375:in `block in with_transaction_returning_status'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `block in transaction'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/transaction.rb:278:in `within_new_transaction'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `transaction'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/transactions.rb:212:in `transaction'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/transactions.rb:366:in `with_transaction_returning_status'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/transactions.rb:314:in `save'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/suppressor.rb:44:in `save'
/var/www/oblyk/api/releases/20260424144357/app/models/publication_views_mapper.rb:57:in `each'
/var/www/oblyk/api/releases/20260424144357/app/models/publication_views_mapper.rb:57:in `save_views'
/var/www/oblyk/api/releases/20260424144357/app/models/publication_views_mapper.rb:30:in `mapper'
/var/www/oblyk/api/releases/20260424144357/app/models/publication_views_mapper.rb:16:in `map_publications'
/var/www/oblyk/api/releases/20260424144357/app/controllers/api/v1/publications_controller.rb:108:in `show'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/abstract_controller/base.rb:195:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:112:in `block in run_callbacks'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rorvswild-1.6.0/lib/rorvswild/plugin/action_controller.rb:28:in `around_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:121:in `instance_exec'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:121:in `block in run_callbacks'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:139:in `run_callbacks'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/rescue.rb:22:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:180:in `block in instrument'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:180:in `instrument'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activerecord-6.0.3.6/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/abstract_controller/base.rb:136:in `process'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal.rb:190:in `dispatch'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_controller/metal.rb:254:in `dispatch'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/routing/route_set.rb:33:in `serve'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/journey/router.rb:49:in `block in serve'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/journey/router.rb:32:in `each'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/journey/router.rb:32:in `serve'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/routing/route_set.rb:834:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:266:in `context'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:260:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/cookies.rb:648:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/etag.rb:27:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/conditional_get.rb:27:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/head.rb:12:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:101:in `run_callbacks'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/rack/logger.rb:37:in `call_app'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/rack/logger.rb:26:in `block in call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/tagged_logging.rb:80:in `block in tagged'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/tagged_logging.rb:28:in `tagged'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/tagged_logging.rb:80:in `tagged'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/rack/logger.rb:26:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/runtime.rb:22:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/activesupport-6.0.3.6/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/executor.rb:14:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-2.2.3/lib/rack/sendfile.rb:110:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/ssl.rb:74:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/host_authorization.rb:76:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rack-cors-1.1.1/lib/rack/cors.rb:100:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/rorvswild-1.6.0/lib/rorvswild/plugin/middleware.rb:20:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/railties-6.0.3.6/lib/rails/engine.rb:527:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/puma-4.3.7/lib/puma/configuration.rb:228:in `call'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/puma-4.3.7/lib/puma/server.rb:713:in `handle_request'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/puma-4.3.7/lib/puma/server.rb:472:in `process_client'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/puma-4.3.7/lib/puma/server.rb:328:in `block in run'
/var/www/oblyk/api/shared/bundle/ruby/2.6.0/gems/puma-4.3.7/lib/puma/thread_pool.rb:134:in `block in spawn_thread'
Parameters
{
"id": "20580",
"action": "show",
"format": "json",
"controller": "api/v1/publications"
}
Headers
| Host |
api.oblyk.org |
| Accept |
application/json, text/plain, */* |
| Cf-Ray |
9f34a6dfef47d51e-CDG |
| Referer |
android-app://org.oblyk.twa/ |
| Version |
HTTP/1.0 |
| Cdn-Loop |
cloudflare; loops=2 |
| Priority |
u=0, i |
| Sec-Ch-Ua |
"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147" |
| Cf-Visitor |
{"scheme":"https"} |
| Connection |
close |
| User-Agent |
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36 |
| Cf-Ipcountry |
FR |
| Authorization |
[FILTERED] |
| Sec-Fetch-Dest |
document |
| Sec-Fetch-Mode |
navigate |
| Sec-Fetch-Site |
cross-site |
| Sec-Fetch-User |
?1 |
| Accept-Encoding |
gzip, br |
| Accept-Language |
fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7 |
| X-Forwarded-For |
2a0d:e487:68f:1ff3:74b8:826:a256:5953, 141.101.68.103,185.163.125.60, 172.71.122.15 |
| Cf-Connecting-Ip |
185.163.125.60 |
| Sec-Ch-Ua-Mobile |
?1 |
| X-Forwarded-Proto |
https |
| Httpapiaccesstoken |
[FILTERED] |
| Sec-Ch-Ua-Platform |
"Android" |
| Upgrade-Insecure-Requests |
1 |
Server
|
Load |
CPU |
RAM |
Swap |
Disk |
|
oblyk-api
|
Load avg
2%
|
CPU
3%
|
RAM
50%
|
Swap
<1%
|
Disk
88%
|