Страница профиля пользователя не найдена (404) — письма не отображаются

Один из моих пользователей написал мне — его аватар внезапно стал «стандартным» (иконка силуэта) — кнопка для отправки личного сообщения пользователю стала неактивной. Я зашёл в админ-панель, нашёл её и попытался показать email, потому что подумал, что из-за смены аватара email на форуме мог измениться, но при нажатии на «Показать email» ничего не происходит. Вот что в консоли:

При переходе к её профилю с форума или со страницы администратора (Показать публичный профиль) я получаю ошибку 404.

Я беспокоюсь, что это происходит и с другими пользователями, но пока ни от кого другого не поступало жалоб. Нашёл ещё одного, у которого наблюдается та же проблема.

Что могло пойти не так? Программное обеспечение должно быть актуальным.

Она всё ещё может читать и публиковать сообщения. Я не могу изменить её имя пользователя или войти в её аккаунт.

Это новый пользователь? Какой у пользователя уровень доверия? Есть ли что-то необычное в аккаунте при просмотре вкладки администратора?

Ну, поскольку я не могу кликнуть по её имени, я могу найти её только в интерфейсе администратора — раздел «Пользователи». Оттуда я вижу, что её аватар действительно неверный (силуэт). Страница администратора, кроме этого, выглядит вполне нормально.

У неё уровень доверия 3 — обычный.

Аккаунту около 4 лет, так что это не новый пользователь — она очень активна и имеет множество постов. Это довольно недавняя проблема, так как она также была довольно активна в личных сообщениях. Конечно, из-за этого вы больше не можете ей ничего отправить.

Она всё ещё может пользоваться сайтом, например, читать и отвечать. Система даже отправляет ей письма.

Только сейчас заметил, что она не единственная — кто-то создал тему на моём форуме по этому поводу:

Вы используете последнюю версию Discourse? Если нет, пожалуйста, обновитесь до последней версии.

Запущены ли у вас сторонние плагины?

Я использую последнюю версию. Запущены:

Retort, возможно, является источником проблемы, я так полагаю? Вы могли бы попробовать быстро пересобрать проект с отключённым Retort и посмотреть, поможет ли это?

Я отключил это, затем выполнил ./launcher rebuild app, но результат тот же.
Достаточно ли отключить через веб-интерфейс или нужно закомментировать строку в app.yml?

РЕДАКТИРОВАНИЕ: Закомментировал retort в app.yml и снова выполнил сборку — всё то же самое :frowning:

Это странная ситуация, может, ты сможешь разобраться в этом в понедельник, @dax?

Причина, по которой профили этих двух пользователей возвращают ошибку 404, неочевидна. Можете ли вы проверить логи сайта и посмотреть, нет ли там чего-то связанного с нажатием на их аватары?

Я сталкиваюсь с той же проблемой и на некоторых старых аккаунтах: я могу получить доступ к странице администратора, но поле электронной почты не отображается, а профиль пользователя возвращает ошибку 404. У меня есть неподтвержденное подозрение, что это как-то связано с именами пользователей, которые идентичны, за исключением подчеркивания (в моем случае ‘MissB’ и ‘Miss_B’ — подчеркивание осталось после импорта из vBulletin). Эта проблема была у обоих аккаунтов, но на одном из них она уже исчезла (на аккаунте с подчеркиванием проблема сохраняется).

Я вижу, что есть пользователи smokyblue и smoky_blue — также был пользователь Pro_Vapes, у которого возникла проблема, но его профиль теперь работает?!

Я нашёл ещё одного: MixedUp (теперь, кажется, MixedUp1?). И Vapemixer — это ещё один пользователь.

Их легко заметить по этому аватару…

Просто к сведению — я использую SSO.

Ага, возможно, SSO здесь мешает и как-то меняет состояние учётных записей?

Миграция неактивных учётных записей из предыдущего ПО — это отдельная проблема, @bartv

Я не думаю, что проблема в этом — учётная запись MissB была создана после миграции (извините, я был недостаточно конкретен).

Итак:

  • MissB — создана после миграции
  • Miss_B — создана до миграции

Когда я переименовываю MissB в MissBTest, я могу показать электронную почту и профиль пользователя. Когда я возвращаю прежнее имя, проблема возвращается (также MissB не может войти под своим именем пользователя; вход по электронной почте работал или сброс пароля).

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

MissB — это не перенесённая учётная запись. Похоже, он не мог войти, используя имя пользователя и пароль, но в итоге всё же удалось войти с помощью адреса электронной почты и пароля.

У меня есть подозрение, что при поиске по имени пользователя возвращается более одного результата, когда имена различаются только одним символом подчёркивания, и это приводит к сбоям.

Так что вы думаете, это связано с наличием двух почти идентичных имён пользователей? :thinking:

@daath, это тоже закономерность в ваших примерах? Почти идентичные имена пользователей и дублирующиеся аккаунты?

Трудно сказать — я не думаю, что почти идентичные имена пользователей являются причиной в одном из случаев, но, с другой стороны, его профиль внезапно снова начал работать.

Когда Discourse обнаруживает имя пользователя с моего основного сайта, которое конфликтует, он просто называет его “UsernameX”, где X — следующее доступное число, которое делает имя пользователя уникальным (на моем основном сайте нет имен пользователей, а есть отображаемые имена, которые не должны быть уникальными).

Мне кажется, что происходит что-то еще, но я не могу понять, что именно. Аккаунты, которые я заметил, были созданы более года назад.

Проблема на моем сайте не носит массового характера, но она крайне раздражает активных пользователей (хотя прямо сейчас на ум приходит только SmokyBlue).

Я ничего не делал, правда, и сейчас её профиль работает:

Страница профиля:

Страница активности:

Карточка:

Обратите внимание, что её аватар в теме всё ещё сломан.

И вот, через минуту после того, как это перестало работать, всё снова работает?! Что происходит? :confused: