تحديث فاشل

I, [2025-08-23T07:21:01.134641 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'find /var/www/discourse/vendor/bundle -name cache -not -path "*/gems/*" -type d -exec rm -rf {} +'
I, [2025-08-23T07:21:02.162053 #1]  INFO -- : 
I, [2025-08-23T07:21:02.162765 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'find /var/www/discourse/vendor/bundle -name tmp -type d -exec rm -rf {} +'
I, [2025-08-23T07:21:02.325196 #1]  INFO -- : 
I, [2025-08-23T07:21:02.329619 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2025-08-23T07:21:09.408854 #1]  INFO -- : 
I, [2025-08-23T07:21:09.410619 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)

ERROR:  must be owner of extension vector
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/db/pg/alias_method.rb:109:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/db/pg/alias_method.rb:109:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/postgres/connection.rb:217:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `block in run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `block in with_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `with_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `run'
/var/www/discourse/lib/mini_sql_multisite_connection.rb:109:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/postgres/connection.rb:196:in `exec'
/var/www/discourse/plugins/discourse-ai/db/migrate/20240611170904_upgrade_pgvector_070.rb:10:in `up'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:994:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:994:in `exec_migration'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `block in exec_migration'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/benchmark-0.4.1/lib/benchmark.rb:305:in `measure'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:975:in `block (2 levels) in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/benchmark.rb:17:in `realtime'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:974:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:412:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:973:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1187:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1535:in `block in execute_migration_in_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:626:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:623:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:367:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:359:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1586:in `ddl_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1534:in `execute_migration_in_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1509:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1509:in `migrate_without_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1454:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1606:in `with_advisory_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1454:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1261:in `up'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1236:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/tasks/database_tasks.rb:270:in `migrate'
/var/www/discourse/lib/tasks/db.rake:267:in `block (2 levels) in <main>'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/lib/tasks/db.rake:242:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.0/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'

Caused by:
PG::InsufficientPrivilege: ERROR:  must be owner of extension vector (PG::InsufficientPrivilege)
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/db/pg/alias_method.rb:109:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/db/pg/alias_method.rb:109:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/postgres/connection.rb:217:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `block in run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `block in with_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `with_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `run'
/var/www/discourse/lib/mini_sql_multisite_connection.rb:109:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/postgres/connection.rb:196:in `exec'
/var/www/discourse/plugins/discourse-ai/db/migrate/20240611170904_upgrade_pgvector_070.rb:10:in `up'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:994:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:994:in `exec_migration'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `block in exec_migration'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/benchmark-0.4.1/lib/benchmark.rb:305:in `measure'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:975:in `block (2 levels) in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/benchmark.rb:17:in `realtime'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:974:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:412:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:973:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1187:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1535:in `block in execute_migration_in_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:626:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:623:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:367:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:359:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1586:in `ddl_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1534:in `execute_migration_in_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1509:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1509:in `migrate_without_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1454:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1606:in `with_advisory_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1454:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1261:in `up'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1236:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/tasks/database_tasks.rb:270:in `migrate'
/var/www/discourse/lib/tasks/db.rake:267:in `block (2 levels) in <main>'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/lib/tasks/db.rake:242:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.0/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
I, [2025-08-23T07:21:33.468823 #1]  INFO -- : == 20240611170904 UpgradePgvector070: migrating ===============================



FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 566 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/exec_command.rb:131:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
c8aa5aba4c2c4f5231b364f714c60365517d25299a447c053a97c86871b3661e
root@www:/var/discourse# 

Hi there, does this help?

That doesn’t make sense to me. I’m running the shell from Digital Ocean as I always do, never had an issue with ownership.

Here’s another try.

root@www:/var/discourse# ./launcher bootstrap web_only && ./launcher destroy web_only && ./launcher start web_only
WARNING: Docker version 24.0.2 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
2.0.20250722-0020: Pulling from discourse/base
Digest: sha256:3b975c30ef85e9742e2d7f6093450867e67dae204c93d22cc38d043dcbf530b3
Status: Image is up to date for discourse/base:2.0.20250722-0020
docker.io/discourse/base:2.0.20250722-0020
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-08-23T07:31:32.087257 #1]  INFO -- : Reading from stdin
I, [2025-08-23T07:31:32.106200 #1]  INFO -- : > thpoff echo "thpoff is installed!"
I, [2025-08-23T07:31:32.110684 #1]  INFO -- : thpoff is installed!

I, [2025-08-23T07:31:32.111638 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end'
I, [2025-08-23T07:31:32.194342 #1]  INFO -- : 
I, [2025-08-23T07:31:32.194896 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2025-08-23T07:31:32.274502 #1]  INFO -- : 
I, [2025-08-23T07:31:32.275039 #1]  INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "Aborting! CDN must have a protocol specified. Once fixed you should rebake your posts now to correct all posts."; exit 1; end'
I, [2025-08-23T07:31:32.357728 #1]  INFO -- : 
I, [2025-08-23T07:31:32.358365 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2025-08-23T07:31:32.362334 #1]  INFO -- : 
I, [2025-08-23T07:31:32.367769 #1]  INFO -- : File > /etc/cron.d/anacron  chmod:   chown: 
I, [2025-08-23T07:31:32.374519 #1]  INFO -- : File > /etc/runit/1.d/copy-env  chmod: +x  chown: 
I, [2025-08-23T07:31:32.379224 #1]  INFO -- : File > /etc/service/unicorn/run  chmod: +x  chown: 
I, [2025-08-23T07:31:32.383792 #1]  INFO -- : File > /etc/service/nginx/run  chmod: +x  chown: 
I, [2025-08-23T07:31:32.387886 #1]  INFO -- : File > /etc/runit/3.d/01-nginx  chmod: +x  chown: 
I, [2025-08-23T07:31:32.392016 #1]  INFO -- : File > /etc/runit/3.d/02-unicorn  chmod: +x  chown: 
I, [2025-08-23T07:31:32.394238 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2025-08-23T07:31:32.896889 #1]  INFO -- : 
I, [2025-08-23T07:31:32.897459 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
      git remote set-branches --add origin main
      git remote set-branches origin tests-passed
      git fetch --depth 1 origin tests-passed
  else
      git fetch --tags --prune-tags --prune --force origin
  fi
'
From https://github.com/discourse/discourse
 - [deleted]             (none)     -> origin/0-a-vite
 - [deleted]             (none)     -> origin/add-plugin-outlet-wrapper-to-login-template
 - [deleted]             (none)     -> origin/default-categories-and-tag-update-batch-implementation
 - [deleted]             (none)     -> origin/dependabot/bundler/excon-1.2.8
 - [deleted]             (none)     -> origin/dependabot/bundler/nokogiri-1.18.9
 - [deleted]             (none)     -> origin/dependabot/bundler/playwright-ruby-client-1.54.0
 - [deleted]             (none)     -> origin/dependabot/bundler/propshaft-1.2.0
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/babel-plugin-ember-template-compilation-3.0.0
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/embroider-0ad991d471
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/glob-11.0.3
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/playwright-1.54.1
 - [deleted]             (none)     -> origin/dev-floatkit-autocomplete-d-editor
 - [deleted]             (none)     -> origin/dev/decorate-quote-collapsed-content-properly
 - [deleted]             (none)     -> origin/dev/extract-invite-guardian
 - [deleted]             (none)     -> origin/dev/mt/discourse-category-custom-fields
 - [deleted]             (none)     -> origin/dev/mt/discourse-group-users
 - [deleted]             (none)     -> origin/dev/mt/discourse-groups
 - [deleted]             (none)     -> origin/dev/mt/discourse-muted-users
 - [deleted]             (none)     -> origin/dev/mt/requires-set
 - [deleted]             (none)     -> origin/dev/no-more-widgets
 - [deleted]             (none)     -> origin/dev/remove-automatic-backups-enabled
 - [deleted]             (none)     -> origin/dev/use-themeable-site-settings-horizon
 - [deleted]             (none)     -> origin/enable-new-topic-btn-on-restricted-category
 - [deleted]             (none)     -> origin/feature-admin-filter-controls
 - [deleted]             (none)     -> origin/feature/enable-rich-editor-for-all
 - [deleted]             (none)     -> origin/filtermagic
 - [deleted]             (none)     -> origin/fix-destination-url
 - [deleted]             (none)     -> origin/fix/automation-toggle
 - [deleted]             (none)     -> origin/fix/mt/log-failed-downloads
 - [deleted]             (none)     -> origin/fix/translated-badge-title
 - [deleted]             (none)     -> origin/hide-ips-option
 - [deleted]             (none)     -> origin/layout-container-dev
 - [deleted]             (none)     -> origin/loic-refactor-list-channel-thread-messages
 - [deleted]             (none)     -> origin/loic-upgrade-rails-8.0
 - [deleted]             (none)     -> origin/media-convert-job
 - [deleted]             (none)     -> origin/merge-sso-destination-url-cookie-with-destination-url-cookie
 - [deleted]             (none)     -> origin/mt/set_store
 - [deleted]             (none)     -> origin/pento/dev-flag-reason-tests
 - [deleted]             (none)     -> origin/playwright-1.53
 - [deleted]             (none)     -> origin/refactor-color-palette
 - [deleted]             (none)     -> origin/remove-suspended-and-deleted-users-from-leaderboard
 - [deleted]             (none)     -> origin/rollup-theme-experiment
 - [deleted]             (none)     -> origin/table-top-border
 - [deleted]             (none)     -> origin/translations-from-crowdin-stable
 - [deleted]             (none)     -> origin/unicode-mentions-in-composer-rte
 - [deleted]             (none)     -> origin/ux-editor-toolbar-mobile-scroll
 - [deleted]             (none)     -> origin/ux/sidebar-show-messages-count
 - [deleted]             (none)     -> origin/variable-additions-2
 - [deleted]             (none)     -> origin/vite
 - [deleted]             (none)     -> origin/{sandbox/member-xp-3}
   43ddd4ef3..e44347414  main                    -> origin/main
 * [new branch]          0-a-action              -> origin/0-a-action
 * [new branch]          0-a-depr-html-safe      -> origin/0-a-depr-html-safe
 * [new branch]          0-a-ember-six           -> origin/0-a-ember-six
 * [new branch]          0-a-filter              -> origin/0-a-filter
 * [new branch]          0-a-perf-main           -> origin/0-a-perf-main
 * [new branch]          0-a-post-stream         -> origin/0-a-post-stream
 * [new branch]          0-a-simple-glimmer      -> origin/0-a-simple-glimmer
 * [new branch]          a11y-landmark-navigation -> origin/a11y-landmark-navigation
 * [new branch]          add-outlet-to-reply-to-tab -> origin/add-outlet-to-reply-to-tab
 * [new branch]          add-postoutletargs      -> origin/add-postoutletargs
 * [new branch]          agent-changes-20250810-175329 -> origin/agent-changes-20250810-175329
 * [new branch]          agent-changes-20250812-074317 -> origin/agent-changes-20250812-074317
 * [new branch]          agent-changes-20250814-131631 -> origin/agent-changes-20250814-131631
 * [new branch]          agent-changes-20250818-151455 -> origin/agent-changes-20250818-151455
 * [new branch]          attempt-auth-immediately-fix -> origin/attempt-auth-immediately-fix
 * [new branch]          composer-tlc            -> origin/composer-tlc
 * [new branch]          configurable-bot-max-completions -> origin/configurable-bot-max-completions
 + 7b3a11da9...eb71461f7 core-full-calendar-6    -> origin/core-full-calendar-6  (forced update)
 * [new branch]          crawler-middleware      -> origin/crawler-middleware
 * [new branch]          debug_persona_flaky_system_test -> origin/debug_persona_flaky_system_test
 * [new branch]          dependabot/bundler/excon-1.3.0 -> origin/dependabot/bundler/excon-1.3.0
 + 36699b311...e3f5c2d0d dependabot/bundler/jwt-3.1.2 -> origin/dependabot/bundler/jwt-3.1.2  (forced update)
 * [new branch]          dependabot/bundler/octokit-10.0.0 -> origin/dependabot/bundler/octokit-10.0.0
 * [new branch]          dependabot/bundler/puma-6.6.1 -> origin/dependabot/bundler/puma-6.6.1
 * [new branch]          dependabot/bundler/rubyzip-3.0.2 -> origin/dependabot/bundler/rubyzip-3.0.2
 * [new branch]          dependabot/bundler/stripe-15.4.0 -> origin/dependabot/bundler/stripe-15.4.0
 + def825f3f...b5a5f3924 dependabot/bundler/web-push-3.0.2 -> origin/dependabot/bundler/web-push-3.0.2  (forced update)
 * [new branch]          dependabot/bundler/zendesk_api-3.1.1 -> origin/dependabot/bundler/zendesk_api-3.1.1
 * [new branch]          dependabot/npm_and_yarn/embroider-c0ffa3c41f -> origin/dependabot/npm_and_yarn/embroider-c0ffa3c41f
 * [new branch]          dependabot/npm_and_yarn/fortawesome/fontawesome-free-7.0.0 -> origin/dependabot/npm_and_yarn/fortawesome/fontawesome-free-7.0.0
 * [new branch]          dependabot/npm_and_yarn/fullcalendar-71a1d03138 -> origin/dependabot/npm_and_yarn/fullcalendar-71a1d03138
 * [new branch]          dependabot/npm_and_yarn/glimmer/syntax-0.95.0 -> origin/dependabot/npm_and_yarn/glimmer/syntax-0.95.0
 * [new branch]          dependabot/npm_and_yarn/jspreadsheet-ce-5.0.3 -> origin/dependabot/npm_and_yarn/jspreadsheet-ce-5.0.3
 + e46dc3798...51349bbfa dependabot/npm_and_yarn/prosemirror-f8434604ae -> origin/dependabot/npm_and_yarn/prosemirror-f8434604ae  (forced update)
 * [new branch]          dev-composer-template-transformer -> origin/dev-composer-template-transformer
 * [new branch]          dev-floatkit-autocomplete-chat-composer-qa -> origin/dev-floatkit-autocomplete-chat-composer-qa
 + ea5bba76a...ab8094d5a dev-floatkit-autocomplete-d-editor-qa -> origin/dev-floatkit-autocomplete-d-editor-qa  (forced update)
 * [new branch]          dev-floatkit-autocomplete-search-inputs-qa -> origin/dev-floatkit-autocomplete-search-inputs-qa
 * [new branch]          dev-store-service-should-not-mutate-input-objs -> origin/dev-store-service-should-not-mutate-input-objs
 * [new branch]          dev/add-attributes-in-edits-indicator -> origin/dev/add-attributes-in-edits-indicator
 * [new branch]          dev/decorate-cooked-state -> origin/dev/decorate-cooked-state
 * [new branch]          dev/deprecate-ember-array-extensions -> origin/dev/deprecate-ember-array-extensions
 * [new branch]          dev/deprecate-site-xview-intializing -> origin/dev/deprecate-site-xview-intializing
 * [new branch]          dev/mt/copy_data_hooks  -> origin/dev/mt/copy_data_hooks
 * [new branch]          dev/mt/discourse-badge-groupings -> origin/dev/mt/discourse-badge-groupings
 * [new branch]          dev/mt/discourse-permalinks -> origin/dev/mt/discourse-permalinks
 * [new branch]          dev/mt/discourse-tag-group-memberships -> origin/dev/mt/discourse-tag-group-memberships
 * [new branch]          dev/mt/discourse-tag-group-permissions -> origin/dev/mt/discourse-tag-group-permissions
 * [new branch]          dev/mt/discourse-tag-groups -> origin/dev/mt/discourse-tag-groups
 * [new branch]          dev/mt/discourse-tag-users -> origin/dev/mt/discourse-tag-users
 * [new branch]          dev/mt/discourse-user-associated-accounts -> origin/dev/mt/discourse-user-associated-accounts
 * [new branch]          dev/mt/discourse-user-badges -> origin/dev/mt/discourse-user-badges
 * [new branch]          dev/mt/discourse-user-field-values -> origin/dev/mt/discourse-user-field-values
 * [new branch]          dev/mt/discourse-user-fields -> origin/dev/mt/discourse-user-fields
   56e6c9ae1..11c480f88  dev/no-more-widgets-smoke-test -> origin/dev/no-more-widgets-smoke-test
 * [new branch]          dev/post-cook-mentions-after-adopt -> origin/dev/post-cook-mentions-after-adopt
 * [new branch]          dev/remove-dual-mode-support-and-theme-owned -> origin/dev/remove-dual-mode-support-and-theme-owned
 * [new branch]          dev/specific-guardian-specs -> origin/dev/specific-guardian-specs
   1f3bbee91..00dfb95b1  dev/try-fix-flakys-tss  -> origin/dev/try-fix-flakys-tss
 * [new branch]          discourse-id-challenge  -> origin/discourse-id-challenge
 * [new branch]          dual-mode-palettes-wip  -> origin/dual-mode-palettes-wip
 * [new branch]          edit-category-page-polish -> origin/edit-category-page-polish
 * [new branch]          ember-build-reuse       -> origin/ember-build-reuse
 * [new branch]          experiment/explainable-guardians -> origin/experiment/explainable-guardians
 * [new branch]          feat/assuming-iam-role-s3 -> origin/feat/assuming-iam-role-s3
 * [new branch]          feature/assuming-iam-role-s3-pt2 -> origin/feature/assuming-iam-role-s3-pt2
   b1197c39e..3b7329907  feature/better-controls-composer-save-close -> origin/feature/better-controls-composer-save-close
 * [new branch]          feature/topic-cards-in-core -> origin/feature/topic-cards-in-core
 * [new branch]          feature/type-upload-in-type-objects -> origin/feature/type-upload-in-type-objects
 * [new branch]          feature/use-current-user-tz-instead-of-guess-local-dates -> origin/feature/use-current-user-tz-instead-of-guess-local-dates
 * [new branch]          filter-updates          -> origin/filter-updates
 * [new branch]          fix-closing             -> origin/fix-closing
 * [new branch]          fix-connect-no-auth-immediately -> origin/fix-connect-no-auth-immediately
 * [new branch]          fix/missing-user-custom-preferences-outlet-class-in-connector -> origin/fix/missing-user-custom-preferences-outlet-class-in-connector
 * [new branch]          fix_form_template_switch_upload -> origin/fix_form_template_switch_upload
 + 2a2682299...9e18befeb form-kit-2-0            -> origin/form-kit-2-0  (forced update)
 * [new branch]          horizon_as_default_for_new_sites -> origin/horizon_as_default_for_new_sites
 * [new branch]          id-setting-desc         -> origin/id-setting-desc
 * [new branch]          improve_no_database_error_patch -> origin/improve_no_database_error_patch
 * [new branch]          improve_pg_adapter_new_client_error -> origin/improve_pg_adapter_new_client_error
 * [new branch]          issue/chat-classes-drawer-full-page -> origin/issue/chat-classes-drawer-full-page
 * [new branch]          lazy-youtube-iframe     -> origin/lazy-youtube-iframe
 * [new branch]          likes-dmenu             -> origin/likes-dmenu
 * [new branch]          loic-list-channel-messages -> origin/loic-list-channel-messages
 * [new branch]          loic-pitchfork          -> origin/loic-pitchfork
 * [new branch]          loic-server-modifiers-types -> origin/loic-server-modifiers-types
 * [new branch]          max-completions         -> origin/max-completions
 * [new branch]          messages-dropdown-d-menu -> origin/messages-dropdown-d-menu
 + 3b3ae9f46...979b63a55 mt/enums                -> origin/mt/enums  (forced update)
 * [new branch]          nat1-merge-branch       -> origin/nat1-merge-branch
 * [new branch]          onebox-images-with-bad-aspect-ratio -> origin/onebox-images-with-bad-aspect-ratio
 * [new branch]          only_dump_schema_tests_workflow -> origin/only_dump_schema_tests_workflow
 * [new branch]          palette-default-on-theme -> origin/palette-default-on-theme
 * [new branch]          pento/dev-create-new-separated-actions -> origin/pento/dev-create-new-separated-actions
 * [new branch]          photoswipe-spike        -> origin/photoswipe-spike
 * [new branch]          post-control-button-edits -> origin/post-control-button-edits
 * [new branch]          refactor-email-logs     -> origin/refactor-email-logs
 * [new branch]          resolver-normalization-cleanup -> origin/resolver-normalization-cleanup
 * [new branch]          revert-localize-topic-view-crawler -> origin/revert-localize-topic-view-crawler
 * [new branch]          revert-private-topic    -> origin/revert-private-topic
 * [new branch]          rollup-plugin-experiment -> origin/rollup-plugin-experiment
 * [new branch]          rollup-theme-experiment-cross-theme-import -> origin/rollup-theme-experiment-cross-theme-import
 * [new branch]          samsaffron/codex/convert-filter-tips-to-use-dmenu -> origin/samsaffron/codex/convert-filter-tips-to-use-dmenu
   8cb90072e..710d9fd41  sandbox/design-1        -> origin/sandbox/design-1
   1f97cf422..320fba83d  sandbox/dev-xp-1        -> origin/sandbox/dev-xp-1
 + 817a743cb...201d337f0 sandbox/member-xp-1     -> origin/sandbox/member-xp-1  (forced update)
 + d182efe6f...6ed7e38c1 sandbox/member-xp-2     -> origin/sandbox/member-xp-2  (forced update)
 + 5f0d9d41c...3b7329907 sandbox/member-xp-4     -> origin/sandbox/member-xp-4  (forced update)
 + f73e21df4...3f5e8926a sandbox/staff-xp-1      -> origin/sandbox/staff-xp-1  (forced update)
 * [new branch]          shadow-variables        -> origin/shadow-variables
 * [new branch]          similar-topics-hook     -> origin/similar-topics-hook
 * [new branch]          similar-topics-modifier -> origin/similar-topics-modifier
 * [new branch]          simplify-add-remove-pm-user-group -> origin/simplify-add-remove-pm-user-group
 * [new branch]          site-settings-formkit   -> origin/site-settings-formkit
 + 9aa6daa1f...e4eb8e7e9 split-login-admin-settings -> origin/split-login-admin-settings  (forced update)
   a83bd0f67..99e53447c  stable                  -> origin/stable
 + 293de3a75...e31549885 temp-user-creation-debug-logging -> origin/temp-user-creation-debug-logging  (forced update)
   43ddd4ef3..e44347414  tests-passed            -> origin/tests-passed
 * [new branch]          theme-upload-cleanup    -> origin/theme-upload-cleanup
 * [new branch]          ux-channel-mention-structure -> origin/ux-channel-mention-structure
 * [new branch]          ux-discoure-id-button-styles -> origin/ux-discoure-id-button-styles
 * [new branch]          ux-hashtag-alignment    -> origin/ux-hashtag-alignment
 * [new branch]          ux-markdown-tip         -> origin/ux-markdown-tip
 * [new branch]          ux/add-tags-to-user-activity-feed -> origin/ux/add-tags-to-user-activity-feed
   b0c2d83ec..045aefecb  ux/horizon-mobile-composer -> origin/ux/horizon-mobile-composer
 * [new branch]          ux/make-title-field-consistent-for-pms-and-regular-topics -> origin/ux/make-title-field-consistent-for-pms-and-regular-topics
   39d2564ba..c5bca775f  vite-squashed-rebased   -> origin/vite-squashed-rebased
 * [new branch]          weclome-banner-styling  -> origin/weclome-banner-styling
 t [tag update]          beta                    -> beta
 t [tag update]          latest-release          -> latest-release
 * [new tag]             v3.4.7                  -> v3.4.7
 * [new tag]             v3.5.0                  -> v3.5.0
 * [new tag]             v3.5.0.beta8            -> v3.5.0.beta8
 * [new tag]             v3.5.0.beta9            -> v3.5.0.beta9
I, [2025-08-23T07:31:34.586713 #1]  INFO -- : 
I, [2025-08-23T07:31:34.587451 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [[ $(git symbolic-ref --short HEAD) == tests-passed ]] ; then
      git pull
  else
      git -c advice.detachedHead=false checkout tests-passed
  fi
'
Switched to a new branch 'tests-passed'
I, [2025-08-23T07:31:43.631956 #1]  INFO -- : branch 'tests-passed' set up to track 'origin/tests-passed'.

I, [2025-08-23T07:31:43.633053 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version tests-passed
I, [2025-08-23T07:31:43.649737 #1]  INFO -- : 
I, [2025-08-23T07:31:43.650349 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2025-08-23T07:31:43.654903 #1]  INFO -- : 
I, [2025-08-23T07:31:43.655462 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2025-08-23T07:31:43.660645 #1]  INFO -- : 
I, [2025-08-23T07:31:43.662835 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2025-08-23T07:31:43.668530 #1]  INFO -- : 
I, [2025-08-23T07:31:43.669121 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2025-08-23T07:31:43.672425 #1]  INFO -- : 
I, [2025-08-23T07:31:43.672835 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2025-08-23T07:31:43.676999 #1]  INFO -- : 
I, [2025-08-23T07:31:43.677425 #1]  INFO -- : > cd /var/www/discourse && mkdir -p                    /shared/log/rails
I, [2025-08-23T07:31:43.680245 #1]  INFO -- : 
I, [2025-08-23T07:31:43.680823 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2025-08-23T07:31:43.686548 #1]  INFO -- : 
I, [2025-08-23T07:31:43.687056 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
I, [2025-08-23T07:31:43.692984 #1]  INFO -- : 
I, [2025-08-23T07:31:43.693479 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/{uploads,backups}"
I, [2025-08-23T07:31:43.699581 #1]  INFO -- : 
I, [2025-08-23T07:31:43.700049 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/{uploads,backups} /var/www/discourse/public"
I, [2025-08-23T07:31:43.704540 #1]  INFO -- : 
I, [2025-08-23T07:31:43.705158 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/tmp/{backups,restores}"
I, [2025-08-23T07:31:43.709801 #1]  INFO -- : 
I, [2025-08-23T07:31:43.710285 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2025-08-23T07:31:43.714500 #1]  INFO -- : 
I, [2025-08-23T07:31:43.715022 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2025-08-23T07:31:43.720424 #1]  INFO -- : 
I, [2025-08-23T07:31:43.721035 #1]  INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2025-08-23T07:31:43.723552 #1]  INFO -- : 
I, [2025-08-23T07:31:43.729379 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2025-08-23T07:31:43.736706 #1]  INFO -- : 
I, [2025-08-23T07:31:43.737592 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2025-08-23T07:31:43.741119 #1]  INFO -- : 
I, [2025-08-23T07:31:43.741702 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2025-08-23T07:31:43.744993 #1]  INFO -- : 
I, [2025-08-23T07:31:43.745572 #1]  INFO -- : > grep -q 'outlets/before-server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The "before-server" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )
I, [2025-08-23T07:31:43.749777 #1]  INFO -- : 
I, [2025-08-23T07:31:43.750234 #1]  INFO -- : > grep -q 'outlets/server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The "server" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )
I, [2025-08-23T07:31:43.753315 #1]  INFO -- : 
I, [2025-08-23T07:31:43.753760 #1]  INFO -- : > grep -q 'outlets/discourse' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The "discourse" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )
I, [2025-08-23T07:31:43.756831 #1]  INFO -- : 
I, [2025-08-23T07:31:43.757716 #1]  INFO -- : > mkdir -p /etc/nginx/conf.d/outlets/before-server
I, [2025-08-23T07:31:43.761027 #1]  INFO -- : 
I, [2025-08-23T07:31:43.761956 #1]  INFO -- : > touch /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf
I, [2025-08-23T07:31:43.764462 #1]  INFO -- : 
I, [2025-08-23T07:31:43.764938 #1]  INFO -- : > touch /etc/nginx/conf.d/outlets/before-server/30-ratelimited.conf
I, [2025-08-23T07:31:43.766748 #1]  INFO -- : 
I, [2025-08-23T07:31:43.767148 #1]  INFO -- : > mkdir -p /etc/nginx/conf.d/outlets/server
I, [2025-08-23T07:31:43.769260 #1]  INFO -- : 
I, [2025-08-23T07:31:43.769684 #1]  INFO -- : > touch /etc/nginx/conf.d/outlets/server/10-http.conf
I, [2025-08-23T07:31:43.771500 #1]  INFO -- : 
I, [2025-08-23T07:31:43.771930 #1]  INFO -- : > touch /etc/nginx/conf.d/outlets/server/20-https.conf
I, [2025-08-23T07:31:43.773841 #1]  INFO -- : 
I, [2025-08-23T07:31:43.774260 #1]  INFO -- : > touch /etc/nginx/conf.d/outlets/server/30-offline-page.conf
I, [2025-08-23T07:31:43.775964 #1]  INFO -- : 
I, [2025-08-23T07:31:43.776426 #1]  INFO -- : > mkdir -p /etc/nginx/conf.d/outlets/discourse
I, [2025-08-23T07:31:43.778362 #1]  INFO -- : 
I, [2025-08-23T07:31:43.778809 #1]  INFO -- : > touch /etc/nginx/conf.d/outlets/discourse/20-https.conf
I, [2025-08-23T07:31:43.780993 #1]  INFO -- : 
I, [2025-08-23T07:31:43.781396 #1]  INFO -- : > touch /etc/nginx/conf.d/outlets/discourse/30-ratelimited.conf
I, [2025-08-23T07:31:43.783190 #1]  INFO -- : 
I, [2025-08-23T07:31:43.783993 #1]  INFO -- : Replacing pid /run/nginx.pid; with daemon off; in /etc/nginx/nginx.conf
I, [2025-08-23T07:31:43.784898 #1]  INFO -- : Replacing (?-mix:worker_connections.+$) with worker_connections $nginx_worker_connections; in /etc/nginx/nginx.conf
I, [2025-08-23T07:31:43.785525 #1]  INFO -- : Replacing (?-mix:client_max_body_size.+$) with client_max_body_size $upload_size; in /etc/nginx/conf.d/discourse.conf
I, [2025-08-23T07:31:43.786042 #1]  INFO -- : > sed -i 's#listen 80;##g' /etc/nginx/conf.d/discourse.conf
I, [2025-08-23T07:31:43.790391 #1]  INFO -- : 
I, [2025-08-23T07:31:43.790918 #1]  INFO -- : > if [ -f "/proc/net/if_inet6" ]; then
  echo "listen 80;\nlisten [::]:80;" > /etc/nginx/conf.d/outlets/server/10-http.conf
else
  echo "listen 80;" > /etc/nginx/conf.d/outlets/server/10-http.conf
fi
I, [2025-08-23T07:31:43.793661 #1]  INFO -- : 
I, [2025-08-23T07:31:43.794416 #1]  INFO -- : > echo "done configuring web"
I, [2025-08-23T07:31:43.797194 #1]  INFO -- : done configuring web

I, [2025-08-23T07:31:43.798295 #1]  INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2025-08-23T07:31:44.265476 #1]  INFO -- : 
I, [2025-08-23T07:31:44.266054 #1]  INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
I, [2025-08-23T07:31:49.783003 #1]  INFO -- : 
I, [2025-08-23T07:31:49.789293 #1]  INFO -- : > cd /var/www/discourse && if [ -f yarn.lock ]; then
  if [ -d node_modules/.pnpm ]; then
    echo "This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up..."
    find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +
  fi
  su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
else
  su discourse -c 'CI=1 pnpm install --frozen-lockfile && pnpm prune'
fi
I, [2025-08-23T07:32:39.130687 #1]  INFO -- : Scope: all 16 workspace projects
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +366 -103
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
Progress: resolved 366, reused 18, downloaded 0, added 0
Progress: resolved 366, reused 107, downloaded 0, added 0
Progress: resolved 366, reused 117, downloaded 11, added 7
Progress: resolved 366, reused 117, downloaded 16, added 24
Progress: resolved 366, reused 117, downloaded 16, added 25
Progress: resolved 366, reused 117, downloaded 16, added 44
Progress: resolved 366, reused 117, downloaded 16, added 52
Progress: resolved 366, reused 117, downloaded 16, added 65
Progress: resolved 366, reused 117, downloaded 27, added 81
Progress: resolved 366, reused 117, downloaded 37, added 91
Progress: resolved 366, reused 117, downloaded 85, added 143
Progress: resolved 366, reused 117, downloaded 93, added 150
Progress: resolved 366, reused 117, downloaded 102, added 161
Progress: resolved 366, reused 117, downloaded 107, added 163
Progress: resolved 366, reused 117, downloaded 109, added 165
Progress: resolved 366, reused 117, downloaded 118, added 173
Progress: resolved 366, reused 117, downloaded 128, added 183
Progress: resolved 366, reused 117, downloaded 129, added 183
Progress: resolved 366, reused 117, downloaded 144, added 198
Progress: resolved 366, reused 117, downloaded 173, added 232
Progress: resolved 366, reused 117, downloaded 187, added 241
Progress: resolved 366, reused 117, downloaded 199, added 253
Progress: resolved 366, reused 117, downloaded 207, added 265
Progress: resolved 366, reused 117, downloaded 214, added 268
Progress: resolved 366, reused 117, downloaded 220, added 274
Progress: resolved 366, reused 117, downloaded 222, added 277
Progress: resolved 366, reused 117, downloaded 230, added 284
Progress: resolved 366, reused 117, downloaded 238, added 292
Progress: resolved 366, reused 117, downloaded 238, added 293
Progress: resolved 366, reused 117, downloaded 246, added 300
Progress: resolved 366, reused 117, downloaded 249, added 319, done
.../node_modules/@swc/core postinstall$ node postinstall.js
.../core-js@3.45.1/node_modules/core-js postinstall$ node -e "try{require('./postinstall')}catch(e){}"
.../esbuild@0.25.9/node_modules/esbuild postinstall$ node install.js
.../node_modules/lefthook postinstall$ node postinstall.js
.../core-js@3.45.1/node_modules/core-js postinstall: Done
.../node_modules/lefthook postinstall: Done
.../node_modules/@swc/core postinstall: Done
.../esbuild@0.25.9/node_modules/esbuild postinstall: Done

devDependencies:
- @discourse/lint-configs 2.22.0
+ @discourse/lint-configs 2.31.0
- @glint/core 1.4.1-unstable.34c4510
+ @glint/core 2.0.0-alpha.3
- @glint/environment-ember-loose 1.4.1-unstable.34c4510
+ @glint/environment-ember-loose 2.0.0-alpha.3
- @glint/environment-ember-template-imports 1.4.1-unstable.34c4510
+ @glint/environment-ember-template-imports 2.0.0-alpha.3
- @glint/template 1.4.1-unstable.34c4510
+ @glint/template 1.6.0-alpha.2
- @swc/core 1.13.1
+ @swc/core 1.13.4
- ember-template-lint 7.7.0
+ ember-template-lint 7.9.3
- esbuild 0.25.8
+ esbuild 0.25.9
- eslint 9.27.0
+ eslint 9.33.0
- lefthook 1.12.2
+ lefthook 1.12.3
- lint-to-the-future-eslint 3.1.0
+ lint-to-the-future-eslint 3.2.0
- playwright 1.52.0
+ playwright 1.55.0
- puppeteer-core 24.14.0
+ puppeteer-core 24.17.0
- stylelint 16.19.1
+ stylelint 16.23.1

Done in 44s using pnpm v9.15.9
Lockfile is up to date, resolution step is skipped
Already up to date


I, [2025-08-23T07:32:39.141165 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --jobs $(($(nproc) - 1)) --retry 3'
WARN: Unresolved or ambiguous specs during Gem::Specification.reset:
      stringio (>= 0)
      Available/installed versions of this gem:
      - 3.1.7
      - 3.1.1
WARN: Clearing out unresolved specs. Try 'gem cleanup <gem>'
Please report a bug if this causes problems.
I, [2025-08-23T07:33:16.827661 #1]  INFO -- : Fetching gem metadata from https://rubygems.org/........
Fetching Ascii85 2.0.1
Installing Ascii85 2.0.1
Fetching activesupport 8.0.2.1
Installing activesupport 8.0.2.1
Fetching nokogiri 1.18.9 (x86_64-linux-gnu)
Installing nokogiri 1.18.9 (x86_64-linux-gnu)
Fetching actionview 8.0.2.1
Installing actionview 8.0.2.1
Fetching actionpack 8.0.2.1
Installing actionpack 8.0.2.1
Fetching activejob 8.0.2.1
Installing activejob 8.0.2.1
Fetching actionmailer 8.0.2.1
Installing actionmailer 8.0.2.1
Fetching activemodel 8.0.2.1
Installing activemodel 8.0.2.1
Fetching activerecord 8.0.2.1
Installing activerecord 8.0.2.1
Fetching afm 1.0.0
Installing afm 1.0.0
Fetching aws-partitions 1.1134.0
Installing aws-partitions 1.1134.0
Fetching aws-sdk-core 3.227.0
Installing aws-sdk-core 3.227.0
Fetching aws-sdk-mediaconvert 1.165.0
Installing aws-sdk-mediaconvert 1.165.0
Fetching cbor 0.5.10.1
Installing cbor 0.5.10.1 with native extensions
Fetching tiktoken_ruby 0.0.11.1 (x86_64-linux)
Installing tiktoken_ruby 0.0.11.1 (x86_64-linux)
Fetching tokenizers 0.5.5 (x86_64-linux)
Installing tokenizers 0.5.5 (x86_64-linux)
Fetching discourse_ai-tokenizers 0.3.1
Installing discourse_ai-tokenizers 0.3.1
Fetching ed25519 1.4.0
Installing ed25519 1.4.0 with native extensions
Fetching json 2.13.2
Installing json 2.13.2 with native extensions
Fetching faraday 2.13.4
Installing faraday 2.13.4
Fetching multipart-post 2.4.1
Installing multipart-post 2.4.1
Fetching faraday-multipart 1.1.1
Installing faraday-multipart 1.1.1
Fetching goldiloader 5.4.0
Installing goldiloader 5.4.0
Fetching google-protobuf 4.32.0 (x86_64-linux-gnu)
Installing google-protobuf 4.32.0 (x86_64-linux-gnu)
Fetching hashery 2.1.2
Installing hashery 2.1.2
Fetching reline 0.6.2
Installing reline 0.6.2
Fetching regexp_parser 2.11.2
Installing regexp_parser 2.11.2
Fetching railties 8.0.2.1
Installing railties 8.0.2.1
Fetching redis-client 0.25.2
Installing redis-client 0.25.2
Fetching sawyer 0.9.2
Installing sawyer 0.9.2
Fetching octokit 5.6.1
Installing octokit 5.6.1
Fetching ruby-rc4 0.1.5
Installing ruby-rc4 0.1.5
Fetching ttfunk 1.8.0
Installing ttfunk 1.8.0
Fetching pdf-reader 2.15.0
Installing pdf-reader 2.15.0
Fetching pg 1.6.1 (x86_64-linux)
Installing pg 1.6.1 (x86_64-linux)
Fetching propshaft 1.2.1
Installing propshaft 1.2.1
Fetching rack-mini-profiler 4.0.1
Installing rack-mini-profiler 4.0.1
Fetching rails_multisite 7.0.0
Installing rails_multisite 7.0.0
Fetching sass-embedded 1.90.0 (x86_64-linux-gnu)
Installing sass-embedded 1.90.0 (x86_64-linux-gnu)
Fetching sassc-embedded 1.80.5
Installing sassc-embedded 1.80.5
Bundle complete! 161 Gemfile dependencies, 208 gems now installed.
Gems in the groups 'test' and 'development' were not installed.
Bundled gems are installed into `./vendor/bundle`
3 installed gems you directly depend on are looking for funding.
  Run `bundle fund` for details

I, [2025-08-23T07:33:16.829668 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle clean'
I, [2025-08-23T07:33:18.202690 #1]  INFO -- : Removing actionmailer (7.2.2.1)
Removing actionpack (7.2.2.1)
Removing actionview (7.2.2.1)
Removing activejob (7.2.2.1)
Removing activemodel (7.2.2.1)
Removing activerecord (7.2.2.1)
Removing activesupport (7.2.2.1)
Removing aws-partitions (1.1117.0)
Removing aws-sdk-core (3.226.0)
Removing cbor (0.5.9.8)
Removing execjs (2.10.0)
Removing faraday (2.13.2)
Removing faraday-multipart (1.0.4)
Removing google-protobuf-4.31.1-x86_64-linux (gnu)
Removing json (2.13.0)
Removing multipart-post (2.2.3)
Removing nokogiri-1.18.8-x86_64-linux (gnu)
Removing pg (1.5.9)
Removing propshaft (1.1.0)
Removing rack-mini-profiler (4.0.0)
Removing rails_multisite (6.1.0)
Removing railties (7.2.2.1)
Removing redis-client (0.25.1)
Removing regexp_parser (2.10.0)
Removing reline (0.6.1)
Removing sass-embedded-1.85.0-x86_64-linux (gnu)
Removing sassc-embedded (1.80.2)

I, [2025-08-23T07:33:18.203661 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'find /var/www/discourse/vendor/bundle -name cache -not -path "*/gems/*" -type d -exec rm -rf {} +'
I, [2025-08-23T07:33:19.121321 #1]  INFO -- : 
I, [2025-08-23T07:33:19.123268 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'find /var/www/discourse/vendor/bundle -name tmp -type d -exec rm -rf {} +'
I, [2025-08-23T07:33:19.304229 #1]  INFO -- : 
I, [2025-08-23T07:33:19.307321 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2025-08-23T07:33:24.982343 #1]  INFO -- : 
I, [2025-08-23T07:33:24.984311 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)

ERROR:  must be owner of extension vector
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/db/pg/alias_method.rb:109:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/db/pg/alias_method.rb:109:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/postgres/connection.rb:217:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `block in run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `block in with_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `with_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `run'
/var/www/discourse/lib/mini_sql_multisite_connection.rb:109:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/postgres/connection.rb:196:in `exec'
/var/www/discourse/plugins/discourse-ai/db/migrate/20240611170904_upgrade_pgvector_070.rb:10:in `up'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:994:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:994:in `exec_migration'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `block in exec_migration'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/benchmark-0.4.1/lib/benchmark.rb:305:in `measure'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:975:in `block (2 levels) in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/benchmark.rb:17:in `realtime'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:974:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:412:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:973:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1187:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1535:in `block in execute_migration_in_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:626:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:623:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:367:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:359:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1586:in `ddl_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1534:in `execute_migration_in_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1509:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1509:in `migrate_without_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1454:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1606:in `with_advisory_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1454:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1261:in `up'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1236:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/tasks/database_tasks.rb:270:in `migrate'
/var/www/discourse/lib/tasks/db.rake:267:in `block (2 levels) in <main>'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/lib/tasks/db.rake:242:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.0/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'

Caused by:
PG::InsufficientPrivilege: ERROR:  must be owner of extension vector (PG::InsufficientPrivilege)
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/db/pg/alias_method.rb:109:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/db/pg/alias_method.rb:109:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/postgres/connection.rb:217:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `block in run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `block in with_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `with_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `run'
/var/www/discourse/lib/mini_sql_multisite_connection.rb:109:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_sql-1.6.0/lib/mini_sql/postgres/connection.rb:196:in `exec'
/var/www/discourse/plugins/discourse-ai/db/migrate/20240611170904_upgrade_pgvector_070.rb:10:in `up'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:994:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:994:in `exec_migration'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `block in exec_migration'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/benchmark-0.4.1/lib/benchmark.rb:305:in `measure'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:975:in `block (2 levels) in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/benchmark.rb:17:in `realtime'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:974:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:412:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:973:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1187:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1535:in `block in execute_migration_in_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:626:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:623:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:367:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:359:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1586:in `ddl_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1534:in `execute_migration_in_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1509:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1509:in `migrate_without_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1454:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1606:in `with_advisory_lock'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1454:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1261:in `up'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/migration.rb:1236:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.2.1/lib/active_record/tasks/database_tasks.rb:270:in `migrate'
/var/www/discourse/lib/tasks/db.rake:267:in `block (2 levels) in <main>'
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize'
/var/www/discourse/lib/tasks/db.rake:242:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.0/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
I, [2025-08-23T07:33:43.977151 #1]  INFO -- : == 20240611170904 UpgradePgvector070: migrating ===============================



FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 567 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/exec_command.rb:131:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
d2b07027669d4247d830c412c68333dffed7f5dd2e1a72a8efe363556827df3a
root@www:/var/discourse# ./discourse-doctor
DISCOURSE DOCTOR Sat Aug 23 07:37:04 UTC 2025
OS: Linux www 5.15.0-152-generic #162-Ubuntu SMP Wed Jul 23 09:48:42 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux


YML=web_only.yml
Found containers/web_only.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=www.foodtalkcentral.com
SMTP_ADDRESS=smtp.mailgun.org
DEVELOPER_EMAILS=robert@lauriston.com
SMTP_PASSWORD=REDACTED
SMTP_PORT=2525
SMTP_USER_NAME=lc@www.foodtalkcentral.com
LETSENCRYPT_ACCOUNT_EMAIL=robert@lauriston.com

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 24.0.2, build cb74dfc

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                           COMMAND        CREATED         STATUS      PORTS                                                                      NAMES
1da3484e3aa5   local_discourse/web_only        "/sbin/boot"   4 months ago    Up 2 days   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   web_only
acbe4eb25b33   local_discourse/mail-receiver   "/sbin/boot"   19 months ago   Up 2 days   0.0.0.0:25->25/tcp, :::25->25/tcp                                          mail-receiver
13ab2f290943   local_discourse/data            "/sbin/boot"   19 months ago   Up 2 days                                                                              data

1da3484e3aa5   local_discourse/web_only        "/sbin/boot"   4 months ago    Up 2 days   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   web_only

Discourse container web_only is running


==================== PLUGINS ====================


WARNING:
You have what appear to be non-official plugins.
If you are having trouble, you should disable them and try rebuilding again.

See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.

========================================
Discourse 3.5.0.beta3
Discourse version at www.foodtalkcentral.com: Discourse 3.5.0.beta3
Discourse version at localhost: Discourse 3.5.0.beta3


==================== MEMORY INFORMATION ====================
RAM (MB): 2059

               total        used        free      shared  buff/cache   available
Mem:            1963        1004          82         428         876         364
Swap:           2047        1204         843

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        68G   55G   13G  82% /

---------- Container Disk Space ----------
df: /shared/postgres_data: No such file or directory
df: /shared/redis_data: No such file or directory
Filesystem      Size  Used Avail Use% Mounted on
overlay          68G   55G   13G  82% /
/dev/vda1        68G   55G   13G  82% /shared
/dev/vda1        68G   55G   13G  82% /var/log

==================== DISK INFORMATION ====================
Disk /dev/loop0: 89.4 MiB, 93745152 bytes, 183096 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop1: 63.77 MiB, 66863104 bytes, 130592 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop3: 87.04 MiB, 91267072 bytes, 178256 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop4: 63.77 MiB, 66863104 bytes, 130592 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop5: 49.29 MiB, 51687424 bytes, 100952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop6: 50.77 MiB, 53235712 bytes, 103976 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/vda: 70 GiB, 75161927680 bytes, 146800640 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C2901603-FAE8-45CB-86FE-13D02E6B6DC6

Device      Start       End   Sectors  Size Type
/dev/vda1  227328 146800606 146573279 69.9G Linux filesystem
/dev/vda14   2048     10239      8192    4M BIOS boot
/dev/vda15  10240    227327    217088  106M EFI System

Partition table entries are not in disk order.


Disk /dev/vdb: 466 KiB, 477184 bytes, 932 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

==================== END DISK INFORMATION ====================

==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Or just send a test message to yourself.
Email address for mail test? ('n' to skip) [robert@lauriston.com]: 
Sending mail to robert@lauriston.com. . . 
Testing sending to robert@lauriston.com using smtp.mailgun.org:2525, username:lc@www.foodtalkcentral.com with plain auth.
SMTP server connection successful.
Sending to robert@lauriston.com. . . 
Mail accepted by SMTP server.
Message-ID: f41124a1-048f-4d0f-878b-d358e937f981@www.foodtalkcentral.com

If you do not receive the message, check your SPAM folder
or test again using a service like http://www.mail-tester.com/.

If the message is not delivered it is not a problem with Discourse.
Check the SMTP server logs for the above Message ID to see why it
failed to deliver the message.
Replacing: SMTP_PASSWORD
Replacing: LETSENCRYPT_ACCOUNT_EMAIL
Replacing: DEVELOPER_EMAILS
Replacing: DISCOURSE_DB_PASSWORD
Replacing: Sending mail to

==================== DONE! ====================

You can examine the output of this script with 
LESS=-Ri less /tmp/discourse-debug.txt

BUT FIRST, make sure that you know the first three commands below!!!

Commands to know when viewing the file with the above command (called 'less'): 
q              -- quit
/error<ENTER>  -- search for the word 'error'
n              -- search for the next occurrence
g              -- go to the beginning of the file
f              -- go forward a page
b              -- go back a page
G              -- go to the end of the file
root@www:/var/discourse# 
إعجاب واحد (1)

https://meta.discourse.org/t/re-failing-update/379987

./launcher rebuild data fails with

Upgrading PostgreSQL from version 13 to 15

-------------------------------------------------------------------------------------
WARNING: Upgrading PostgreSQL would require an additional 14G of disk space
Please free up some space, or expand your disk, before continuing.

To avoid upgrading change "templates/postgres.template.yml" TO "templates/postgres.13.template.yml" in containers/app.yml

You can run "./launcher start app" to restart your app in the meanwhile.
-------------------------------------------------------------------------------------



FAILED

./launcher start app

fails with

WARNING: Docker version 24.0.2 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
ERROR: containers/app.yml does not exist or is not readable.

Available configs ( data, mail-receiver, web_only )

My droplet has 70GB disk and it’s 81.2% full, so I guess I do need more disk space. Will simply upsizing my DigitalOcean droplet to 90GB disk resolve the problem or do I need to somehow mess with the allocation between the two containers?

I’ve always just increased totally space, nothing else. Sure, big guys can do differently.

You’ve propably already done ./launcher cleanup and destroyed old images.

إعجاب واحد (1)

I’ve got 90GB now, but it’s still failing on the PostgreSQL upgrade.

fixing permissions on existing directory /var/lib/postgresql/13/main ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Etc/UTC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

Success. You can now start the database server using:

    pg_ctlcluster 13 main start

Stopping PostgreSQL 13 database server: main.
Stopping PostgreSQL 15 database server: main.
Performing Consistency Checks
-----------------------------
Checking cluster versions                                   ok

The source cluster was not shut down cleanly.
Failure, exiting
-------------------------------------------------------------------------------------
UPGRADE OF POSTGRES FAILED

Please visit https://meta.discourse.org/t/postgresql-15-update/349515 for support.

You can run ./launcher start app to restart your app in the meanwhile
-------------------------------------------------------------------------------------



FAILED
--------------------
Pups::ExecError: if [ -f /root/install_postgres ]; then
  /root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi
 failed with return #<Process::Status: pid 19 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/exec_command.rb:131:in `spawn'
exec failed with the params {"tag"=>"db", "cmd"=>"if [ -f /root/install_postgres ]; then\n  /root/install_postgres && rm -f /root/install_postgres\nelif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then\n  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1\nfi\n"}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
e9eb9a9ae7569db87582a8c9d15291c67713171277bf16b1507212906adc84b1
WARNING: Docker version 24.0.2 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 web_only
web_only
2.0.20250722-0020: Pulling from discourse/base
Digest: sha256:3b975c30ef85e9742e2d7f6093450867e67dae204c93d22cc38d043dcbf530b3
Status: Image is up to date for discourse/base:2.0.20250722-0020
docker.io/discourse/base:2.0.20250722-0020
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups.rb
/usr/local/bin/pups --stdin
docker: Error response from daemon: could not get container for data: No such container: data.
See 'docker run --help'.
cat: cids/web_only_bootstrap.cid: No such file or directory
bootstrap failed with exit code 125
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
Container name cannot be empty
root@www:/var/discourse# 

I looked at PostgreSQL 15 update but didn’t find anything that clearly addressed my problem.

root@www:/var/discourse# ./launcher start app
WARNING: Docker version 24.0.2 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
ERROR: containers/app.yml does not exist or is not readable.

Available configs ( data, mail-receiver, web_only )
root@www:/var/discourse# 
root@www:/var/discourse# ./discourse-doctor
DISCOURSE DOCTOR Sat Aug 23 20:24:54 UTC 2025
OS: Linux www 5.15.0-152-generic #162-Ubuntu SMP Wed Jul 23 09:48:42 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux


YML=web_only.yml
Found containers/web_only.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=www.foodtalkcentral.com
SMTP_ADDRESS=smtp.mailgun.org
DEVELOPER_EMAILS=robert@lauriston.com
SMTP_PASSWORD=
SMTP_PORT=2525
SMTP_USER_NAME=lc@www.foodtalkcentral.com
LETSENCRYPT_ACCOUNT_EMAIL=robert@lauriston.com

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 24.0.2, build cb74dfc

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                           COMMAND        CREATED         STATUS                      PORTS                               NAMES
1da3484e3aa5   local_discourse/web_only        "/sbin/boot"   4 months ago    Exited (5) 11 minutes ago                                       web_only
acbe4eb25b33   local_discourse/mail-receiver   "/sbin/boot"   19 months ago   Up 16 minutes               0.0.0.0:25->25/tcp, :::25->25/tcp   mail-receiver

==================== SERIOUS PROBLEM!!!! ====================
web_only not running!
Attempting to rebuild
==================== REBUILD LOG ====================
WARNING: Docker version 24.0.2 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 web_only
web_only
2.0.20250722-0020: Pulling from discourse/base
Digest: sha256:3b975c30ef85e9742e2d7f6093450867e67dae204c93d22cc38d043dcbf530b3
Status: Image is up to date for discourse/base:2.0.20250722-0020
docker.io/discourse/base:2.0.20250722-0020
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups.rb
/usr/local/bin/pups --stdin
docker: Error response from daemon: could not get container for data: No such container: data.
See 'docker run --help'.
cat: cids/web_only_bootstrap.cid: No such file or directory
bootstrap failed with exit code 125
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
Container name cannot be empty
==================== END REBUILD LOG ====================
Failed to rebuild web_only.

Checking your domain name . . .

Connection to www.foodtalkcentral.com succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . . 
WARNING: Docker version 24.0.2 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.

starting up existing container
+ /usr/bin/docker start web_only
Error response from daemon: driver failed programming external connectivity on endpoint web_only (16c3e65c41485825f2d087b9183f09dc917ad029f3d37b2d8fc51c5a2ade13f1): Error starting userland proxy: listen tcp4 0.0.0.0:443: bind: address already in use
Error: failed to start containers: web_only
Failed to restart the container.


==================== PLUGINS ====================


WARNING:
You have what appear to be non-official plugins.
If you are having trouble, you should disable them and try rebuilding again.

See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.

========================================
Discourse version at www.foodtalkcentral.com: NOT FOUND
Discourse version at localhost: NOT FOUND


==================== MEMORY INFORMATION ====================
RAM (MB): 2058

               total        used        free      shared  buff/cache   available
Mem:            1963         290         270           3        1403        1477
Swap:           2047           1        2046

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        88G   35G   53G  40% /

==================== DISK INFORMATION ====================
Disk /dev/loop0: 63.77 MiB, 66863104 bytes, 130592 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop1: 63.77 MiB, 66863104 bytes, 130592 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop2: 87.04 MiB, 91267072 bytes, 178256 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop3: 89.4 MiB, 93745152 bytes, 183096 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop4: 50.77 MiB, 53235712 bytes, 103976 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop5: 49.29 MiB, 51687424 bytes, 100952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/vda: 90 GiB, 96636764160 bytes, 188743680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C2901603-FAE8-45CB-86FE-13D02E6B6DC6

Device      Start       End   Sectors  Size Type
/dev/vda1  227328 188743646 188516319 89.9G Linux filesystem
/dev/vda14   2048     10239      8192    4M BIOS boot
/dev/vda15  10240    227327    217088  106M EFI System

Partition table entries are not in disk order.


Disk /dev/vdb: 466 KiB, 477184 bytes, 932 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

==================== END DISK INFORMATION ====================

==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Or just send a test message to yourself.
Email address for mail test? ('n' to skip) [robert@lauriston.com]: n
Mail test skipped.
Replacing: SMTP_PASSWORD
Replacing: LETSENCRYPT_ACCOUNT_EMAIL
Replacing: DEVELOPER_EMAILS
Replacing: DISCOURSE_DB_PASSWORD
Replacing: Sending mail to

==================== DONE! ====================

You can examine the output of this script with 
LESS=-Ri less /tmp/discourse-debug.txt

BUT FIRST, make sure that you know the first three commands below!!!

Commands to know when viewing the file with the above command (called 'less'): 
q              -- quit
/error<ENTER>  -- search for the word 'error'
n              -- search for the next occurrence
g              -- go to the beginning of the file
f              -- go forward a page
b              -- go back a page
G              -- go to the end of the file
root@www:/var/discourse# 

This is a permission issue on Postgres. You need to manually enter the database and install or update the vector extension.

More help here

I’m not sure how to get into PostgreSQL. Following came from @pfaffman in Update = ☠ - #37 by pfaffman :

root@www:/var/discourse# ./launcher start web_only
WARNING: Docker version 24.0.2 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.

starting up existing container
+ /usr/bin/docker start web_only
web_only
root@www:/var/discourse# ./launcher enter app
WARNING: Docker version 24.0.2 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
ERROR: containers/app.yml does not exist or is not readable.

Available configs ( data, mail-receiver, web_only )
root@www:/var/discourse# ./launcher enter web_only
WARNING: Docker version 24.0.2 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
root@www-web-only:/var/www/discourse# su - postgres
postgres@www-web-only:~$ psql discourse
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
        Is the server running locally and accepting connections on that socket?

You also need to do this.

What is your os version?

 cat /etc/issue

If it’s 20.04 it needs an upgrade, otherwise, you can just upgrade docker.

Ubuntu is 22.04.2. I upgraded Docker to 28.3.3.

root@www:/var/discourse# ./launcher bootstrap web_only 
x86_64 arch detected.
2.0.20250722-0020: Pulling from discourse/base
Digest: sha256:3b975c30ef85e9742e2d7f6093450867e67dae204c93d22cc38d043dcbf530b3
Status: Image is up to date for discourse/base:2.0.20250722-0020
docker.io/discourse/base:2.0.20250722-0020
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups.rb
/usr/local/bin/pups --stdin
docker: Error response from daemon: could not get container for data: No such container: data

Run 'docker run --help' for more information
cat: cids/web_only_bootstrap.cid: No such file or directory
bootstrap failed with exit code 125
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
container name cannot be empty
root@www:/var/discourse# docker start web_only
web_only
root@www:/var/discourse# ./launcher enter web_only
x86_64 arch detected.
root@www-web-only:/var/www/discourse# su - postgres
postgres@www-web-only:~$ psql discourse
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
        Is the server running locally and accepting connections on that socket?

You need to rebuild the data container.

What’s the command for that?

The PostgreSQL 15 update covers that

./launcher rebuild data

Or

./launcher start data

If it’s already upgraded

./launcher rebuild data fails with

The source cluster was not shut down cleanly.
Failure, exiting
-------------------------------------------------------------------------------------
UPGRADE OF POSTGRES FAILED

Please visit https://meta.discourse.org/t/postgresql-15-update/349515 for support.

Looking at PostgreSQL 15 update , I tried this:

root@www:/var/discourse# ./launcher stop web_only
x86_64 arch detected.
+ /usr/bin/docker stop -t 600 web_only
web_only
root@www:/var/discourse# ./launcher stop data
x86_64 arch detected.
data was not started !
./discourse-doctor may help diagnose the problem.
root@www:/var/discourse# tail -f shared/standalone/log/var-log/postgres/current
tail: cannot open 'shared/standalone/log/var-log/postgres/current' for reading: No such file or directory
tail: no files remaining
root@www:/var/discourse# 

You can try starting data and then starting web_only