This is full log:
└─# ./launcher rebuild app
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20251003-1437: Pulling from discourse/base
Digest: sha256:0db7c9b4598e2a1806658391669d791fd779aa4301fdfbed6a7f322bf64e66ab
Status: Image is up to date for discourse/base:2.0.20251003-1437
docker.io/discourse/base:2.0.20251003-1437
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-11-20T12:57:18.105575 #1] INFO -- : Reading from stdin
I, [2025-11-20T12:57:18.116863 #1] INFO -- : File > /etc/service/redis/run chmod: +x chown:
I, [2025-11-20T12:57:18.120584 #1] INFO -- : File > /etc/service/redis/log/run chmod: +x chown:
I, [2025-11-20T12:57:18.124261 #1] INFO -- : File > /etc/runit/3.d/10-redis chmod: +x chown:
I, [2025-11-20T12:57:18.124872 #1] INFO -- : Replacing daemonize yes with in /etc/redis/redis.conf
I, [2025-11-20T12:57:18.126958 #1] INFO -- : Replacing (?-mix:^pidfile.*$) with in /etc/redis/redis.conf
I, [2025-11-20T12:57:18.127984 #1] INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2025-11-20T12:57:18.131369 #1] INFO -- :
I, [2025-11-20T12:57:18.131807 #1] INFO -- : Replacing (?-mix:^logfile.*$) with logfile "" in /etc/redis/redis.conf
I, [2025-11-20T12:57:18.132422 #1] INFO -- : Replacing (?-mix:^bind .*$) with in /etc/redis/redis.conf
I, [2025-11-20T12:57:18.134285 #1] INFO -- : Replacing (?-mix:^dir .*$) with dir /shared/redis_data in /etc/redis/redis.conf
I, [2025-11-20T12:57:18.135071 #1] INFO -- : Replacing (?-mix:^protected-mode yes) with protected-mode no in /etc/redis/redis.conf
I, [2025-11-20T12:57:18.135730 #1] INFO -- : Replacing # io-threads 4 with io-threads $redis_io_threads in /etc/redis/redis.conf
I, [2025-11-20T12:57:18.136429 #1] INFO -- : > echo redis installed
I, [2025-11-20T12:57:18.138350 #1] INFO -- : redis installed
I, [2025-11-20T12:57:18.138598 #1] INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2025-11-20T12:57:18.142582 #1] INFO -- : logfile ""
I, [2025-11-20T12:57:18.142916 #1] INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2025-11-20T12:57:18.144125 #1] INFO -- : > sleep 10
18:C 20 Nov 2025 12:57:18.156 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
18:C 20 Nov 2025 12:57:18.156 # Redis version=7.0.15, bits=64, commit=00000000, modified=0, pid=18, just started
18:C 20 Nov 2025 12:57:18.156 # Configuration loaded
18:M 20 Nov 2025 12:57:18.157 * monotonic clock: POSIX clock_gettime
18:M 20 Nov 2025 12:57:18.158 * Running mode=standalone, port=6379.
18:M 20 Nov 2025 12:57:18.158 # Server initialized
18:M 20 Nov 2025 12:57:18.158 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
18:M 20 Nov 2025 12:57:18.158 * Loading RDB produced by version 7.0.15
18:M 20 Nov 2025 12:57:18.158 * RDB age 2960 seconds
18:M 20 Nov 2025 12:57:18.158 * RDB memory usage when created 6.02 Mb
18:M 20 Nov 2025 12:57:18.179 * Done loading RDB, keys loaded: 4596, keys expired: 9.
18:M 20 Nov 2025 12:57:18.179 * DB loaded from disk: 0.021 seconds
18:M 20 Nov 2025 12:57:18.179 * Ready to accept connections
I, [2025-11-20T12:57:28.146418 #1] INFO -- :
I, [2025-11-20T12:57:28.147252 #1] INFO -- : > thpoff echo "thpoff is installed!"
I, [2025-11-20T12:57:28.151019 #1] INFO -- : thpoff is installed!
I, [2025-11-20T12:57:28.151452 #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-11-20T12:57:28.258766 #1] INFO -- :
I, [2025-11-20T12:57:28.258920 #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-11-20T12:57:28.359414 #1] INFO -- :
I, [2025-11-20T12:57:28.359546 #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-11-20T12:57:28.465003 #1] INFO -- :
I, [2025-11-20T12:57:28.465230 #1] INFO -- : > rm -f /etc/cron.d/anacron
I, [2025-11-20T12:57:28.467452 #1] INFO -- :
I, [2025-11-20T12:57:28.470130 #1] INFO -- : File > /etc/cron.d/anacron chmod: chown:
I, [2025-11-20T12:57:28.474084 #1] INFO -- : File > /etc/runit/1.d/copy-env chmod: +x chown:
I, [2025-11-20T12:57:28.478139 #1] INFO -- : File > /etc/service/unicorn/run chmod: +x chown:
I, [2025-11-20T12:57:28.482090 #1] INFO -- : File > /etc/service/nginx/run chmod: +x chown:
I, [2025-11-20T12:57:28.486062 #1] INFO -- : File > /etc/runit/3.d/01-nginx chmod: +x chown:
I, [2025-11-20T12:57:28.489878 #1] INFO -- : File > /etc/runit/3.d/02-unicorn chmod: +x chown:
I, [2025-11-20T12:57:28.497775 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2025-11-20T12:57:28.718382 #1] INFO -- :
I, [2025-11-20T12:57:28.718551 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
git fetch --tags --prune-tags --prune --force origin
if [[ $(git symbolic-ref --short HEAD) == v2.8.5 ]] ; then
git pull
else
git -c advice.detachedHead=false checkout v2.8.5
fi
'
From https://github.com/discourse/discourse
- [deleted] (none) -> origin/0-a-cakeday
- [deleted] (none) -> origin/0-a-rubocop
- [deleted] (none) -> origin/0-a-unused-services
- [deleted] (none) -> origin/1-anon-nav
- [deleted] (none) -> origin/add-auto-track-docs
- [deleted] (none) -> origin/add-postoutletargs
- [deleted] (none) -> origin/ai-summary-serializer
- [deleted] (none) -> origin/ai-translation-configuration-update
- [deleted] (none) -> origin/d-otp
- [deleted] (none) -> origin/default-locale-temporarily-close-flag
- [deleted] (none) -> origin/dependabot/bundler/rubocop-discourse-3.13.0
- [deleted] (none) -> origin/dependabot/bundler/rubyzip-3.1.1
- [deleted] (none) -> origin/dependabot/bundler/sass-a19c11c4e9
- [deleted] (none) -> origin/dependabot/bundler/stripe-16.0.0
- [deleted] (none) -> origin/dependabot/github_actions/actions/setup-node-5
- [deleted] (none) -> origin/dependabot/npm_and_yarn/ember-cli-6.7.0
- [deleted] (none) -> origin/dependabot/npm_and_yarn/embroider-f83e75fa89
- [deleted] (none) -> origin/dependabot/npm_and_yarn/faker-js/faker-10.0.0
- [deleted] (none) -> origin/dependabot/npm_and_yarn/glimmer/component-2.0.0
- [deleted] (none) -> origin/dependabot/npm_and_yarn/lint-ed9b700cc1
- [deleted] (none) -> origin/dependabot/npm_and_yarn/memfs-4.48.1
- [deleted] (none) -> origin/dependabot/npm_and_yarn/webpack-5.102.0
- [deleted] (none) -> origin/dev-merge-login-css
- [deleted] (none) -> origin/dev/migrate-from-advanced-search-to-welcome-banner
- [deleted] (none) -> origin/dev/no-more-array-clear
- [deleted] (none) -> origin/dev/no-more-array-deprecations-post-stream
- [deleted] (none) -> origin/dev/no-more-array-get-set
- [deleted] (none) -> origin/dev/no-more-array-square-brackets-property
- [deleted] (none) -> origin/exact-url-match-in-sidebar
- [deleted] (none) -> origin/experimental-chat-search
- [deleted] (none) -> origin/feat-add-ical-format-response-to-post-events-index
- [deleted] (none) -> origin/feature/bump-wiki-docs-topics-op-edit
- [deleted] (none) -> origin/feature/edit-theme-owned-palettes
- [deleted] (none) -> origin/feature/split-categories-and-groups-for-moderators-setting
- [deleted] (none) -> origin/feature/upcoming-changes-v1
- [deleted] (none) -> origin/fix/deleted-user-email
- [deleted] (none) -> origin/fix_debounce_in_d_multi_select
- [deleted] (none) -> origin/fix_multiple_data_uploads
- [deleted] (none) -> origin/headless-chrome
- [deleted] (none) -> origin/issue/handle-worker-load-timeout-failure
- [deleted] (none) -> origin/likes-dmenu
- [deleted] (none) -> origin/llm-credit-allocation
- [deleted] (none) -> origin/log_http_accept_language_header
- [deleted] (none) -> origin/loic-pitchfork
- [deleted] (none) -> origin/mt/only-skip-option
- [deleted] (none) -> origin/mt/site_settings
- [deleted] (none) -> origin/onebox-in-localized-posts
- [deleted] (none) -> origin/pento/dev-calculate-flakyness
- [deleted] (none) -> origin/photoswipe-lightbox
- [deleted] (none) -> origin/remove-category-badge-recursive
- [deleted] (none) -> origin/remove-footermessage-legacy-text
- [deleted] (none) -> origin/simplify-add-remove-pm-user-group
- [deleted] (none) -> origin/split-login-admin-settings
- [deleted] (none) -> origin/system-email-fallback
- [deleted] (none) -> origin/toggle_editor_when_unsupported
- [deleted] (none) -> origin/topic-voting-ux
- [deleted] (none) -> origin/type-package
- [deleted] (none) -> origin/unicode-grant-admin
- [deleted] (none) -> origin/update_pgvector_080
5d239c560..51c218e3c main -> origin/main
* [new branch] 0-a-browser-testem -> origin/0-a-browser-testem
* [new branch] 0-a-card-border -> origin/0-a-card-border
* [new branch] 0-a-deps-categ -> origin/0-a-deps-categ
* [new branch] 0-a-floating-ui -> origin/0-a-floating-ui
* [new branch] 0-a-path -> origin/0-a-path
94faf7901..a58678538 a11y-post-heading-scrolling -> origin/a11y-post-heading-scrolling
* [new branch] adplugin-add-implement-impressions -> origin/adplugin-add-implement-impressions
* [new branch] ai-prototype/cascade-sheets -> origin/ai-prototype/cascade-sheets
* [new branch] ai-prototype/reaction-last -> origin/ai-prototype/reaction-last
* [new branch] anthropic-caching -> origin/anthropic-caching
+ 5c183e735...ffaa66cd8 async_ember_helpers_patch -> origin/async_ember_helpers_patch (forced update)
* [new branch] better-email-subject-lines -> origin/better-email-subject-lines
* [new branch] block-network-system -> origin/block-network-system
* [new branch] blocks-system -> origin/blocks-system
* [new branch] br/upload -> origin/br/upload
* [new branch] browse-latest-topics-in-new-new-sub-tabs -> origin/browse-latest-topics-in-new-new-sub-tabs
* [new branch] btn-mixin-border-radius -> origin/btn-mixin-border-radius
* [new branch] cal-fix -> origin/cal-fix
* [new branch] calendar-fix -> origin/calendar-fix
* [new branch] capybara_browser_checkts_control -> origin/capybara_browser_checkts_control
* [new branch] capybara_browser_checkts_experiment -> origin/capybara_browser_checkts_experiment
* [new branch] chat-banner-content -> origin/chat-banner-content
* [new branch] composer-ios-hack -> origin/composer-ios-hack
* [new branch] configure_pg_statement_timeout_for_unicorn_processes -> origin/configure_pg_statement_timeout_for_unicorn_processes
* [new branch] couple-sm-tweaks -> origin/couple-sm-tweaks
* [new branch] custom_field -> origin/custom_field
* [new branch] d-button-signature -> origin/d-button-signature
* [new branch] d-menu-close-animation -> origin/d-menu-close-animation
* [new branch] d-otp-followups -> origin/d-otp-followups
* [new branch] dependabot/bundler/crack-1.0.1 -> origin/dependabot/bundler/crack-1.0.1
* [new branch] dependabot/bundler/excon-1.3.1 -> origin/dependabot/bundler/excon-1.3.1
* [new branch] dependabot/bundler/mail-2.9.0 -> origin/dependabot/bundler/mail-2.9.0
* [new branch] dependabot/bundler/rubyzip-3.2.2 -> origin/dependabot/bundler/rubyzip-3.2.2
* [new branch] dependabot/bundler/sass-95568ee139 -> origin/dependabot/bundler/sass-95568ee139
* [new branch] dependabot/bundler/stripe-18.0.0 -> origin/dependabot/bundler/stripe-18.0.0
* [new branch] dependabot/bundler/webmock-3.26.1 -> origin/dependabot/bundler/webmock-3.26.1
* [new branch] dependabot/bundler/zendesk_api-4.0.0.pre.1 -> origin/dependabot/bundler/zendesk_api-4.0.0.pre.1
* [new branch] dependabot/github_actions/actions/setup-node-6 -> origin/dependabot/github_actions/actions/setup-node-6
* [new branch] dependabot/npm_and_yarn/chart.js-4.5.1 -> origin/dependabot/npm_and_yarn/chart.js-4.5.1
* [new branch] dependabot/npm_and_yarn/embroider-b89ca3ee63 -> origin/dependabot/npm_and_yarn/embroider-b89ca3ee63
* [new branch] dependabot/npm_and_yarn/esbuild-0.27.0 -> origin/dependabot/npm_and_yarn/esbuild-0.27.0
+ c3027deb3...27fb7bbf0 dependabot/npm_and_yarn/fortawesome/fontawesome-free-7.1.0 -> origin/dependabot/npm_and_yarn/fortawesome/fontawesome-free-7.1.0 (forced update)
* [new branch] dependabot/npm_and_yarn/glob-13.0.0 -> origin/dependabot/npm_and_yarn/glob-13.0.0
+ 6b0686c06...c917fbfa3 dependabot/npm_and_yarn/jsuites-5.13.4 -> origin/dependabot/npm_and_yarn/jsuites-5.13.4 (forced update)
* [new branch] dependabot/npm_and_yarn/memfs-4.51.0 -> origin/dependabot/npm_and_yarn/memfs-4.51.0
* [new branch] dependabot/npm_and_yarn/morphlex-1.0.4 -> origin/dependabot/npm_and_yarn/morphlex-1.0.4
* [new branch] dependabot/npm_and_yarn/types-546d678181 -> origin/dependabot/npm_and_yarn/types-546d678181
+ 39ab10317...9a5504f09 dependabot/npm_and_yarn/uppy-573db43783 -> origin/dependabot/npm_and_yarn/uppy-573db43783 (forced update)
* [new branch] dev-add-autocomplete-results-signature-type -> origin/dev-add-autocomplete-results-signature-type
* [new branch] dev-allow-right-left-placements-for-autocomplete-menu -> origin/dev-allow-right-left-placements-for-autocomplete-menu
* [new branch] dev-azure-json-object -> origin/dev-azure-json-object
* [new branch] dev-refactor-d-autocomplete -> origin/dev-refactor-d-autocomplete
* [new branch] dev-replace-hashtag-autocomplete-templates-with-components -> origin/dev-replace-hashtag-autocomplete-templates-with-components
9d33c2629..6d7e3ce9f dev/add-no-category-composer-site-setting -> origin/dev/add-no-category-composer-site-setting
* [new branch] dev/deprecate-nil-in-site-settings -> origin/dev/deprecate-nil-in-site-settings
* [new branch] dev/git-ignore-mise-local-conf -> origin/dev/git-ignore-mise-local-conf
* [new branch] dev/messagebus-response-headers -> origin/dev/messagebus-response-headers
* [new branch] dev/mt/discourse-category-moderation-groups -> origin/dev/mt/discourse-category-moderation-groups
* [new branch] dev/no-more-array-ember-methods -> origin/dev/no-more-array-ember-methods
* [new branch] dev/no-more-array-pushObject -> origin/dev/no-more-array-pushObject
* [new branch] dev/problem-check-cleanups-part-2 -> origin/dev/problem-check-cleanups-part-2
+ 6e00e4b6d...8898de768 dev/purge-widgets -> origin/dev/purge-widgets (forced update)
* [new branch] dev/remove-widgets-code -> origin/dev/remove-widgets-code
+ 50c30c39f...0d2c402dc dev/user-actions-reviewable-logging -> origin/dev/user-actions-reviewable-logging (forced update)
* [new branch] disable-autofocus-otp-ios -> origin/disable-autofocus-otp-ios
* [new branch] discourse-id-error-logging -> origin/discourse-id-error-logging
* [new branch] discourse-id-update-support -> origin/discourse-id-update-support
* [new branch] dont_joins_categories_unnecessarily -> origin/dont_joins_categories_unnecessarily
* [new branch] dont_override_category_model -> origin/dont_override_category_model
* [new branch] easy-link-to-own-profile-from-user-card -> origin/easy-link-to-own-profile-from-user-card
* [new branch] ember_settled_check -> origin/ember_settled_check
+ 64e725e17...030f51cfe ember_settled_experimental -> origin/ember_settled_experimental (forced update)
* [new branch] feature/add-uploads-to-type-objects -> origin/feature/add-uploads-to-type-objects
+ c84648556...6fd7acf52 feature/assuming-iam-role-s3-pt2 -> origin/feature/assuming-iam-role-s3-pt2 (forced update)
d3ae413fd..560d9e5f4 feature/chat-channel-sidebar-menu -> origin/feature/chat-channel-sidebar-menu
* [new branch] feature/copy-as-markdown -> origin/feature/copy-as-markdown
* [new branch] feature/github-mute-category-linkback -> origin/feature/github-mute-category-linkback
* [new branch] feature/requisite-site-settings -> origin/feature/requisite-site-settings
* [new branch] feature/upcoming-change-group-simplify -> origin/feature/upcoming-change-group-simplify
* [new branch] filter-uploads -> origin/filter-uploads
* [new branch] fix-credit-allocation-resets -> origin/fix-credit-allocation-resets
* [new branch] fix-credit-error-popups -> origin/fix-credit-error-popups
* [new branch] fix-emoji-autocomplete-trigger-even-after-whitespace-in-term -> origin/fix-emoji-autocomplete-trigger-even-after-whitespace-in-term
* [new branch] fix-selector -> origin/fix-selector
* [new branch] fix-translation-missing-in-email-templates -> origin/fix-translation-missing-in-email-templates
* [new branch] fix/ai-llm-status-check -> origin/fix/ai-llm-status-check
* [new branch] fix/calendar-missing-starts-at -> origin/fix/calendar-missing-starts-at
* [new branch] fix/deleted-posts-list-rendering -> origin/fix/deleted-posts-list-rendering
* [new branch] fix/notify-chat-user-non-channel-member -> origin/fix/notify-chat-user-non-channel-member
+ 9e18befeb...2f019fb59 form-kit-2-0 -> origin/form-kit-2-0 (forced update)
+ 01dabbed3...2d3a082cd horizon_as_default_for_new_sites -> origin/horizon_as_default_for_new_sites (forced update)
* [new branch] image_grid_on_rte -> origin/image_grid_on_rte
* [new branch] issue/draft-save-no-change -> origin/issue/draft-save-no-change
* [new branch] issue/fix-placeholder-rte-non-image-upload -> origin/issue/fix-placeholder-rte-non-image-upload
* [new branch] issue/quote-isolating -> origin/issue/quote-isolating
* [new branch] jordan-feature -> origin/jordan-feature
+ 40d18be01...99c6a3d14 keep-img-tag-implementation-for-excerpt-parser -> origin/keep-img-tag-implementation-for-excerpt-parser (forced update)
04ed87792..51c218e3c latest -> origin/latest
* [new branch] likes-dmenu-mylikes -> origin/likes-dmenu-mylikes
* [new branch] limit-post-voting -> origin/limit-post-voting
* [new branch] linkbacks -> origin/linkbacks
* [new branch] loc-title-edit -> origin/loc-title-edit
* [new branch] localized-pg-headline -> origin/localized-pg-headline
* [new branch] localized-search-data -> origin/localized-search-data
* [new branch] log-max-sql-duration -> origin/log-max-sql-duration
+ bd7c66753...b6a1847be loic-server-modifiers-types -> origin/loic-server-modifiers-types (forced update)
* [new branch] loic/pagy -> origin/loic/pagy
* [new branch] martin-brennan-patch-1 -> origin/martin-brennan-patch-1
+ e6bdecf7f...6f0670964 member-xp-1 -> origin/member-xp-1 (forced update)
* [new branch] modal-animation -> origin/modal-animation
+ 483d30315...c1aa1fc97 mt/user_options -> origin/mt/user_options (forced update)
* [new branch] multipart-upload-fix -> origin/multipart-upload-fix
b38084846..3abbe3301 nat1-merge-branch -> origin/nat1-merge-branch
* [new branch] no-silent-failure-invalid-regex-watched-words -> origin/no-silent-failure-invalid-regex-watched-words
* [new branch] one-step-wizard -> origin/one-step-wizard
* [new branch] outlet-suspension-silenced -> origin/outlet-suspension-silenced
3e69277e2..94af89fcf peek-mode-v2 -> origin/peek-mode-v2
* [new branch] prevent-model-fails -> origin/prevent-model-fails
* [new branch] problem-check-credit -> origin/problem-check-credit
* [new branch] prototype-avatars -> origin/prototype-avatars
* [new branch] qunit-binding -> origin/qunit-binding
* [new branch] quote-button -> origin/quote-button
* [new branch] quote-lightbox -> origin/quote-lightbox
99695c6c0..e9fb01e59 refactor-subgrid -> origin/refactor-subgrid
* [new branch] release-infrastructure -> origin/release-infrastructure
* [new branch] repo-refactor -> origin/repo-refactor
* [new branch] revert -> origin/revert
+ 8a8148488...503758d99 rollup-plugin-experiment -> origin/rollup-plugin-experiment (forced update)
* [new branch] rspec-color -> origin/rspec-color
+ e8ccaeb1c...a3eccc73d sandbox/ai-team -> origin/sandbox/ai-team (forced update)
+ 1ef463255...007db3bd1 sandbox/dev-xp-1 -> origin/sandbox/dev-xp-1 (forced update)
a925474ed..86f5bb772 sandbox/dev-xp-2 -> origin/sandbox/dev-xp-2
+ 3e69277e2...46a3d9ca5 sandbox/member-xp-1 -> origin/sandbox/member-xp-1 (forced update)
+ 1effbe0cc...915e24a0a sandbox/member-xp-2 -> origin/sandbox/member-xp-2 (forced update)
+ 170018e94...03b301782 sandbox/member-xp-3 -> origin/sandbox/member-xp-3 (forced update)
+ bfb813d85...883862176 sandbox/member-xp-4 -> origin/sandbox/member-xp-4 (forced update)
+ 4c42dfdae...ce93f2ec6 sandbox/staff-xp-1 -> origin/sandbox/staff-xp-1 (forced update)
* [new branch] screened-ip -> origin/screened-ip
* [new branch] scripted_llm_tests -> origin/scripted_llm_tests
* [new branch] search-localized -> origin/search-localized
* [new branch] shared-edits -> origin/shared-edits
* [new branch] show-topic-loading -> origin/show-topic-loading
beaacf9e0..47399adbd stable -> origin/stable
* [new branch] test-runner-exp -> origin/test-runner-exp
04ed87792..51c218e3c tests-passed -> origin/tests-passed
* [new branch] tobiaseigen-patch-5 -> origin/tobiaseigen-patch-5
* [new branch] translation-retry-quota-rewrite -> origin/translation-retry-quota-rewrite
* [new branch] translations-from-crowdin-main -> origin/translations-from-crowdin-main
* [new branch] translations-from-crowdin-stable -> origin/translations-from-crowdin-stable
* [new branch] upgrade_rubocop_discourse -> origin/upgrade_rubocop_discourse
* [new branch] use-transcoded -> origin/use-transcoded
* [new branch] use_pm_on_to_markdown -> origin/use_pm_on_to_markdown
* [new branch] ux-ai-bot-sidebar-link -> origin/ux-ai-bot-sidebar-link
* [new branch] ux-claimable-reivew-filter -> origin/ux-claimable-reivew-filter
* [new branch] ux-composer-mode-placeholder -> origin/ux-composer-mode-placeholder
* [new branch] ux-policy-button-width -> origin/ux-policy-button-width
* [new branch] ux-sign-up-button-position -> origin/ux-sign-up-button-position
* [new branch] version-bump/main -> origin/version-bump/main
* [new branch] version_bump/stable -> origin/version_bump/stable
c5bca775f..8d7db37c2 vite-squashed-rebased -> origin/vite-squashed-rebased
* [new branch] white_space_paragraph_parsing -> origin/white_space_paragraph_parsing
* [new branch] x-amz-tagging -> origin/x-amz-tagging
t [tag update] beta -> beta
t [tag update] latest-release -> latest-release
* [new tag] v3.5.2 -> v3.5.2
* [new tag] v3.6.0.beta2 -> v3.6.0.beta2
HEAD is now at 61cf79192 Version bump to v2.8.5 (#17187)
I, [2025-11-20T12:58:10.975801 #1] INFO -- :
I, [2025-11-20T12:58:10.976348 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version v2.8.5
I, [2025-11-20T12:58:10.990092 #1] INFO -- :
I, [2025-11-20T12:58:10.990310 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2025-11-20T12:58:10.993582 #1] INFO -- :
I, [2025-11-20T12:58:10.993719 #1] INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2025-11-20T12:58:10.996441 #1] INFO -- :
I, [2025-11-20T12:58:10.996632 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2025-11-20T12:58:10.999355 #1] INFO -- :
I, [2025-11-20T12:58:10.999470 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2025-11-20T12:58:11.002136 #1] INFO -- :
I, [2025-11-20T12:58:11.002293 #1] INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2025-11-20T12:58:11.004947 #1] INFO -- :
I, [2025-11-20T12:58:11.005072 #1] INFO -- : > cd /var/www/discourse && mkdir -p /shared/log/rails
I, [2025-11-20T12:58:11.007844 #1] INFO -- :
I, [2025-11-20T12:58:11.007985 #1] INFO -- : > cd /var/www/discourse && bash -c "touch -a /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2025-11-20T12:58:11.012438 #1] INFO -- :
I, [2025-11-20T12:58:11.012548 #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-11-20T12:58:11.016830 #1] INFO -- :
I, [2025-11-20T12:58:11.016924 #1] INFO -- : > cd /var/www/discourse && bash -c "mkdir -p /shared/{uploads,backups}"
I, [2025-11-20T12:58:11.021076 #1] INFO -- :
I, [2025-11-20T12:58:11.021204 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/{uploads,backups} /var/www/discourse/public"
I, [2025-11-20T12:58:11.025467 #1] INFO -- :
I, [2025-11-20T12:58:11.025569 #1] INFO -- : > cd /var/www/discourse && bash -c "mkdir -p /shared/tmp/{backups,restores}"
I, [2025-11-20T12:58:11.029778 #1] INFO -- :
I, [2025-11-20T12:58:11.029884 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2025-11-20T12:58:11.034102 #1] INFO -- :
I, [2025-11-20T12:58:11.034224 #1] INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2025-11-20T12:58:11.069336 #1] INFO -- :
I, [2025-11-20T12:58:11.069510 #1] INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2025-11-20T12:58:11.071978 #1] INFO -- :
I, [2025-11-20T12:58:11.072492 #1] INFO -- : Replacing # redis with sv start redis || exit 1 in /etc/service/unicorn/run
I, [2025-11-20T12:58:11.073877 #1] INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2025-11-20T12:58:11.076755 #1] INFO -- :
I, [2025-11-20T12:58:11.077000 #1] INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2025-11-20T12:58:11.079147 #1] INFO -- :
I, [2025-11-20T12:58:11.079295 #1] INFO -- : > mkdir -p /var/nginx/cache
I, [2025-11-20T12:58:11.081261 #1] INFO -- :
I, [2025-11-20T12:58:11.081491 #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 )
The "before-server" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.
I, [2025-11-20T12:58:11.085029 #1] INFO -- :
I, [2025-11-20T12:58:11.086820 #1] INFO -- : Terminating async processes
I, [2025-11-20T12:58:11.086912 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 18
18:signal-handler (1763643491) Received SIGTERM scheduling shutdown...
18:M 20 Nov 2025 12:58:11.133 # User requested shutdown...
18:M 20 Nov 2025 12:58:11.133 * Saving the final RDB snapshot before exiting.
18:M 20 Nov 2025 12:58:11.178 * DB saved on disk
18:M 20 Nov 2025 12:58:11.178 # Redis is now ready to exit, bye bye...
FAILED
--------------------
Pups::ExecError: 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 ) failed with return #<Process::Status: pid 156 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 {"cmd"=>["cp $home/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf", "rm /etc/nginx/sites-enabled/default", "mkdir -p /var/nginx/cache", "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 )", "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 )", "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 )", "mkdir -p /etc/nginx/conf.d/outlets/before-server", "touch /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf", "touch /etc/nginx/conf.d/outlets/before-server/30-ratelimited.conf", "mkdir -p /etc/nginx/conf.d/outlets/server", "touch /etc/nginx/conf.d/outlets/server/10-http.conf", "touch /etc/nginx/conf.d/outlets/server/20-https.conf", "touch /etc/nginx/conf.d/outlets/server/30-offline-page.conf", "mkdir -p /etc/nginx/conf.d/outlets/discourse", "touch /etc/nginx/conf.d/outlets/discourse/20-https.conf", "touch /etc/nginx/conf.d/outlets/discourse/30-ratelimited.conf"]}
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.
66c43294171cf7dc0616baf53fdaf32130c9e09951dddbe01312c565deeb85db