# Лимит в 500 символов для «Причины отказа» слишком мал

**URL:** https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884
**Category:** UX
**Tags:** completed, review-queue
**Created:** [17.Январь.2024 01:00:40 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884 "2024-01-17T01:00:40Z")
**Posts on this page:** 16
**Page:** 1

<div class="post-metadata">

### Author: ![Paul\_King](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paul_king/32/165426_2.png) [@Paul\_King](https://meta.discourse.org/u/Paul_King)
#### Post date: [17.Январь.2024 01:00:40 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/1 "2024-01-17T01:00:40Z")

</div>

Похоже, что при уведомлении о необходимости проверить заявку нового пользователя на моём форуме и последующем отклонении заявки с помощью опции «Удалить пользователя», если при этом выбрать опцию включения письма с объяснением причин отказа, теперь возвращается ошибка «422».

Если я не включаю письмо, то удаление пользователя происходит, как и раньше.

Форум продолжает корректно отправлять электронные уведомления зарегистрированным пользователям.

В настоящее время установлена версия Discourse 3.2.0.beta5-dev.

Ниже приведены логи ошибок форума, соответствующие дате возникновения проблемы (сегодня):

```plaintext
5
Предупреждение об устаревании: `SiteSetting.min_trust_to_edit_post` устарела. Пожалуйста, используйте `SiteSetting.edit_post_allowed_groups` вместо неё (удаление в Discourse 3.3) At /var/www/discourse/app/models/co
13:19
15
Предупреждение об устаревании: параметр email устарел. Все POST-запросы к этому маршруту должны отправляться с параметром email_encoded, закодированным в формате base64 strict. Параметр email был получен и
13:37
Не удалось обработать электронное письмо: Email::Receiver::AutoGeneratedEmailError Received: from smtp-mx-server-8.servers.netregistry.net (unknown [202.124.241.69]) by nz-mail-receiver.localdomain (Postfix) with
13:37
Не удалось обработать электронное письмо: Email::Receiver::NoBodyDetectedError Received: from EUR04-VI1-obe.outbound.protection.outlook.com (unknown [104.47.14.50]) by nz-mail-receiver.localdomain (Postfix) with
13:39
2
ActiveRecord::RecordInvalid (Validation failed: Reject reason is too long (maximum is 500 characters)) app/models/reviewable.rb:362:in `transition_to' app/models/reviewable.rb:335:in `block in perform
13:51
2
Не удалось обработать исключение в промежуточном ПО исключений: ActiveRecord::RecordInvalid : Validation failed: Reject reason is too long (maximum is 500 characters)
13:51
235
Sidekiq потребляет слишком много памяти (используется: 557.11M) для 'nzarchitecture.net.nz', перезапуск
13:54
38
Предупреждение об устаревании: `SiteSetting.min_trust_to_create_tag` устарела. Пожалуйста, используйте `SiteSetting.create_tag_allowed_groups` вместо неё (удаление в Discourse 3.3) At /var/www/discourse/lib/guardia
14:06
33
Предупреждение об устаревании: `SiteSetting.min_trust_to_edit_post` устарела. Пожалуйста, используйте `SiteSetting.edit_post_allowed_groups` вместо неё (удаление в Discourse 3.3) At /var/www/discourse/lib/guardian/
14:06

```

Я не уверен, когда и в какой версии программного обеспечения Discourse впервые возникла эта проблема, так как заявок поступает немного, и отклонять приходится очень немногие из них. Однако ранее подобных проблем не возникало, и я использовал тот же самый текст в предыдущих уведомлениях об отказе.

Я вижу ссылку на «Reject reason is too long (maximum is 500 characters)», и мой стандартный текст причины отказа действительно превышает 500 символов — но ранее это работало.

Я считаю, что это важно исправить, поскольку предоставление полного и удовлетворительного объяснения любого отказа — это базовая вежливость по отношению к потенциальным заявителям, особенно если неясно, что заявка была подана со злым умыслом (если они не соответствуют критериям членства, но явно не являются ботами, маркетологами или другими «плохими акторами»).

Это сложно сделать в пределах 500 символов, если мы также хотим дать советы тем, кто может захотеть подать заявку повторно. Если необходимо, существует ли способ увеличить лимит символов?

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

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [17.Январь.2024 08:07:05 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/3 "2024-01-17T08:07:05Z")

</div>

> [@Paul\_King](#):
>
> Это сложно уложить в 500 символов, если мы также хотим дать советы тем, кто может захотеть подать заявку повторно. Если необходимо, есть ли способ увеличить лимит символов?

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

> [@Paul\_King](#):
>
> Это уже запрашивалось в другом месте, но я хотел бы повторить эту просьбу (если разработчики это увидят): нам также нужен выпадающий список с редактируемыми стандартными «причинами отказа» для выбора.

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

---

<div class="post-metadata">

### Author: ![Paul\_King](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paul_king/32/165426_2.png) [@Paul\_King](https://meta.discourse.org/u/Paul_King)
#### Post date: [17.Январь.2024 11:03:53 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/4 "2024-01-17T11:03:53Z")

</div>

Привет, спасибо, @JammyDodger. Мой текущий текст причины отклонения состоит из 2211 символов, поскольку он содержит советы, касающиеся нескольких сценариев, которые требуют определённой нюансировки (это довольно специализированный форум).

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

Попробую найти отдельную тему с этим запросом.

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [17.Январь.2024 18:15:45 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/5 "2024-01-17T18:15:45Z")

</div>

> [@Paul\_King](#):
>
> Я вижу упоминание об ошибке «причина отклонения слишком длинная (максимум 500 символов)», и мой стандартный текст причины отклонения действительно превышает 500 символов — но раньше это работало.

Да, всё верно, примерно 9 месяцев назад мы добавили ограничение на уровне базы данных: [DEV: Set limits for text fields in reviewables · discourse/discourse@783c935 · GitHub](https://github.com/discourse/discourse/commit/783c935dcb7f114c206da4fe9c46c91ca5c687f3)

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

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

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [17.Январь.2024 18:37:49 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/8 "2024-01-17T18:37:49Z")

</div>

> [@Penar Musaraj](#):
>
> На данный момент мне кажется разумным сократить это сообщение (и, возможно, добавить ссылку на тему с остальной частью).

[опубликованная страница](https://meta.discourse.org/t/page-publishing/151971) может отлично подойти для этого, если на сайте требуется вход. Их можно сделать видимыми даже для анонимных пользователей, даже если включена настройка «требуется вход».

---

<div class="post-metadata">

### Author: ![Paul\_King](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paul_king/32/165426_2.png) [@Paul\_King](https://meta.discourse.org/u/Paul_King)
#### Post date: [18.Январь.2024 00:55:56 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/9 "2024-01-18T00:55:56Z")

</div>

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

Мне важно не вызывать лишнего раздражения и не отталкивать тех, кто впоследствии может оказаться подходящим пользователем форума.

И я по-прежнему не хочу вручную копировать и вставлять это сообщение каждый раз.

---

<div class="post-metadata">

### Author: ![Firepup650](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firepup650/32/465200_2.png) [@Firepup650](https://meta.discourse.org/u/Firepup650)
#### Post date: [18.Январь.2024 01:05:45 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/10 "2024-01-18T01:05:45Z")

</div>

> [@Пол Кинг](#):
>
> особенно поскольку почтовые приложения часто по умолчанию блокируют открытие ссылок в полученных письмах.

Лично я не сталкивался с почтовыми приложениями, которые так делают, это кажется странным поведением по умолчанию.

---

<div class="post-metadata">

### Author: ![Paul\_King](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paul_king/32/165426_2.png) [@Paul\_King](https://meta.discourse.org/u/Paul_King)
#### Post date: [18.Январь.2024 06:12:40 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/11 "2024-01-18T06:12:40Z")

</div>

> [@Firepup Sixfifty](#):
>
> Лично я не видел почтовых приложений, которые так делают, это кажется странным по умолчанию.

Мое собственное приложение Microsoft Outlook — один из таких примеров. Такое поведение, похоже, зависит от уровня доверия, который оно связывает с полученным сообщением.  
Автоматический ответ на письмо от нового пользователя или соискателя может показаться немного спамным, если пользователь ещё не добавил домен отправителя в свой список доверенных отправителей. Этот шаг кажется излишним для нового пользователя, особенно если он ещё не был официально принят в качестве пользователя.

Я сделал всё возможное, чтобы улучшить репутацию своего домена, но некоторые сообщения с моего форума всё ещё попадают в папку «Спам» у некоторых получателей. Хотя их можно прочитать, ссылки в них всегда отключены.

---

<div class="post-metadata">

### Author: ![Bart](https://avatars.discourse-cdn.com/v4/letter/b/f19dbf/32.png) [@Bart](https://meta.discourse.org/u/Bart)
#### Post date: [17.Июнь.2024 08:35:35 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/14 "2024-06-17T08:35:35Z")

</div>

У меня та же ситуация. Мне нужно минимум 1200 символов, чтобы добавить ссылки и контактную информацию. Это немного раздражает. Также возможность разбивать текст на абзацы сделала бы его менее роботизированным. Спасибо.

---

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [18.Июнь.2024 05:51:07 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/16 "2024-06-18T05:51:07Z")

</div>

Я увеличил лимит до 2000 символов и исправил отображение сообщения об ошибке в этом коммите 🙂

> <https://github.com/discourse/discourse/pull/27507>
>
> Followup 783c935dcb7f114c206da4fe9c46c91ca5c687f3
> 
> Some admins were finding th…at the limit introduced above was
> too short especially when sending an email to rejected users.
> This commit bumps the limit from 500 to 2000 and also fixes
> an issue where the friendly error message was not shown in
> the browser.
> 
> c.f. https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884

---

<div class="post-metadata">

### Author: ![Bart](https://avatars.discourse-cdn.com/v4/letter/b/f19dbf/32.png) [@Bart](https://meta.discourse.org/u/Bart)
#### Post date: [18.Июнь.2024 07:19:10 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/17 "2024-06-18T07:19:10Z")

</div>

Спасибо @martin, но у меня на хостинге это пока не работает. Я всё ещё получаю ошибку. У меня меньше 1100 символов. Ура.

---

<div class="post-metadata">

### Author: ![Bart](https://avatars.discourse-cdn.com/v4/letter/b/f19dbf/32.png) [@Bart](https://meta.discourse.org/u/Bart)
#### Post date: [18.Июнь.2024 07:20:56 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/18 "2024-06-18T07:20:56Z")

</div>

О, подождите — интересно, несмотря на ошибку, письмо успешно отправилось. Однако пользователь не был удалён. Не означает ли это, что вчера я отправил около 20 писем одному и тому же пользователю?

---

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [18.Июнь.2024 22:41:44 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/19 "2024-06-18T22:41:44Z")

</div>

Ах, извините, я не понял, что вы используете наш хостинг. Если вы пришлете мне в личное сообщение название сайта, я разверну изменения сегодня.

> [@Bart](#):
>
> несмотря на ошибку, письмо было отправлено корректно

Это странно, я перепроверю это. Когда я работал над изменениями вчера, я не заметил дублирования писем.

---

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [19.Июнь.2024 00:18:31 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/20 "2024-06-19T00:18:31Z")

</div>

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

---

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [19.Июнь.2024 05:27:59 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/21 "2024-06-19T05:27:59Z")

</div>

Исправление выполнено:

> <https://github.com/discourse/discourse/pull/27529>
>
> Followup 6b872c4c5382e5e58c14d55bc92b8da5ba158ce1
> 
> Even though we were showing… a validation error for a reject
> reason that was too long, we were still sending an email and
> doing other operations on the user which we are rejecting.
> 
> This commit fixes this by validating the reviewable model
> before attempting to do anything else after the reason is set.

Скоро разверну ваш сайт, спасибо, что прислали его.

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [22.Июнь.2024 07:00:20 UTC](https://meta.discourse.org/t/500-character-reject-reason-is-too-small-a-limit/291884/22 "2024-06-22T07:00:20Z")

</div>

Эта тема была автоматически закрыта через 3 дня. Новые ответы больше не принимаются.
