Just had this happen on a new forum, I tried to add a theme, which failed due to one of the file extensions. I then allowed * temporarily just to try to fix the issue, and then I started getting 500s trying to add the theme.
Message
Failed to process hijacked response correctly : ActiveRecord::RecordNotUnique : PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_child_themes_on_parent_theme_id_and_child_theme_id"
DETAIL: Key (parent_theme_id, child_theme_id)=(50, 35) already exists.
Backtrace
rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:69:in `exec_params'
rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:69:in `exec_params'
activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `block (2 levels) in exec_no_cache'
activesupport-7.0.8/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
activesupport-7.0.8/lib/active_support/dependencies/interlock.rb:41:in `permit_concurrent_loads'
activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:767:in `block in exec_no_cache'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
I’ll double check, but reproduction steps should be:
Find a theme with some file that’s not allowed by default (or delete everything from the theme allowed extensions list or similar)
Try to import the theme
See it fail because of the extension
Allow relevant extensions (or just *)
Still try and fail to import the theme.
The theme might also need some theme components attached to it, I’m not sure.
I originally caused this using my own theme, but AFAIK most themes should be theoretically able to cause this.
Edit:
Right, the only real mandatory condition here seems to be the blocked file, so a theme with a custom font, logo, etc can trigger it if you disallow that file extension. (Also, staff uploads apparently override theme uploads, so make sure it’s not allowed in either setting)
I never really intended anyone else to use the theme, it’s just heavily tuned the way I like it, and it has the theme components I like having available.