После обновления до v3.5.3 возникли проблемы на странице администратора

После обновления с версии v3.5.2 до v3.5.3 административная панель перестала работать корректно

Также появляется следующая ошибка:

loader.js:247 Uncaught (in promise) Error: Could not find module discourse/admin/models/admin-plugin imported from discourse/plugins/docker_manager/discourse/models/repo
at loader.js:247:1
at a (loader.js:258:1)
at s.findDeps (loader.js:168:1)
at a (loader.js:262:1)
at s.findDeps (loader.js:168:1)
at a (loader.js:262:1)
at requireModule (loader.js:24:1)
at n.i [as getRoute] (index.ts:121:18)
at p._getQPMeta (index.ts:101:20)
(anonymous) @ loader.js:247
a @ loader.js:258
(anonymous) @ loader.js:168
a @ loader.js:262
(anonymous) @ loader.js:168
a @ loader.js:262
requireModule @ loader.js:24
i @ index.ts:121
_getQPMeta @ index.ts:101

После отключения плагинов всё работает нормально, но не удаётся определить, какой именно плагин вызывает проблему. Можете ли вы помочь разобраться?

Проблема сохраняется, когда в безопасном режиме отключена «кастомизация неофициальных клиентских плагинов», но работает нормально при отключении «всей кастомизации клиентских плагинов».

Версия 3.5.3 больше не поддерживается. Пожалуйста, ознакомьтесь с информацией на странице https://releases.discourse.org.

Как сказал Нейт, это сейчас очень старая версия. Попробуйте, возможно, обновить через командную строку.

Какую версию вы рекомендуете для обновления? Не возникнет ли больше проблем с совместимостью при обновлении через множество версий?

После обновления до версии 2026.1.1 процесс сразу же завершился с ошибкой

Проверьте /logs на наличие подозрительных сообщений.

Если обновление веб-интерфейса не удалось, вам необходимо войти через SSH от имени root и выполнить обновление из командной строки.

Можете попробовать выполнить пересборку через командную строку, как предлагается в ответе выше? Это, скорее всего, исправит проблему. Я никогда не сталкивался с ошибками из-за скачков версий.

Можете уточнить, какая именно команда используется? Мой сервис упакован в Docker-образ и развернут в кластере Kubernetes на удаленном сервере. Развертывание выполнено в режиме web_only.

Кроме того, при возникновении ошибок на странице администратора появляется следующее сообщение:

Перейдите в каталог, куда вы установили Discourse, и введите ./launcher rebuild app — там, где находится discourse_docker. Я полагаю, что /var/discourse — это «рекомендуемое» место для размещения скрипта, но у вас оно может быть другим.

Это не поддерживается. Вам нужно выполнить действия для загрузки последнего образа. Также потребуется миграция базы данных. Обычно при обновлении нескольких версий проблем не возникает.

Похоже, миграция базы данных не удалась. Появилась следующая ошибка.

TOP => db:migrate => assets:precompile:asset_processor │
│ полный трассировочный вывод можно получить, запустив задачу с флагом --trace) │
│ выполняется /etc/runit/1.d/00-ensure-links │
│ выполняется /etc/runit/1.d/01-cleanup-web-pids │
│ выполняется /etc/runit/1.d/anacron │
│ выполняется /etc/runit/1.d/cleanup-pids │
│ устаревшие PID-файлы │
│ выполняется /etc/runit/1.d/copy-env │
│ runsvdir, PID 1126 │
│ прервано! │
│ pnpm -C=frontend/asset-processor node build.js (Discourse::Utils::CommandError) │
│ Не удалось переключить pnpm на версию v10.28.0. Похоже, что CLI pnpm отсутствует по пути “/home/discourse/.local/share/pnpm/.tools/pnpm/10.28.0/bin” или настроен неверно │
│ /home/discourse/.local/share/pnpm/.tools/pnpm/10.28.0/bin/pnpm EACCES

При проверке конкретного пути pnpm я обнаружил, что путь существует, но файл pnpm.cjs не имеет прав на выполнение, что и вызвало ошибку.

drwxrwxrwx root root /
drwxr-xr-x root root home
drwxr-x— discourse discourse discourse
drwxr-x— discourse discourse .local
drwxr-x— discourse discourse share
drwxr-x— discourse discourse pnpm
drwxr-x— discourse discourse .tools
drwxr-x— discourse discourse pnpm
lrwxrwxrwx discourse discourse 10.28.0 → 10.28.0_tmp_9_0
drwxr-x— discourse discourse 10.28.0_tmp_9_0
drwxr-x— discourse discourse bin
lrwxrwxrwx discourse discourse pnpm → ../node_modules/pnpm/bin/pnpm.cjs
drwxr-x— discourse discourse ..
drwxr-x— discourse discourse node_modules
drwxr-x— discourse discourse pnpm
drwxr-x— discourse discourse bin
-rw-r----- discourse discourse pnpm.cjs

Позже я предварительно установил соответствующую версию pnpm с помощью corepack в образе, после чего миграция базы данных прошла успешно. Теперь сервис работает нормально.