Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KeyboardButtonActionType open_photo #1522

Closed
ivanmem opened this issue Jun 15, 2023 · 10 comments
Closed

KeyboardButtonActionType open_photo #1522

ivanmem opened this issue Jun 15, 2023 · 10 comments
Labels
Вопрос Требуется дополнительная информация по задаче
Milestone

Comments

@ivanmem
Copy link
Contributor

ivanmem commented Jun 15, 2023

Видимо появился какой-то новый тип кнопки (open_photo) и при получении обновлений через api.Groups.GetBotsLongPollHistoryAsync - всё падает с ошибкой JsonSerializationException.

"ClassName": "Newtonsoft.Json.JsonSerializationException",
"Message": "Error converting value \"open_photo\" to type 'VkNet.Enums.SafetyEnums.KeyboardButtonActionType'. Path 'client_info.button_actions[5]', line 23, position 18.",

Можно сделать так, чтобы вместо падения было null и где-нибудь лог ошибок?
Из-за таких ошибок парализуется работа всего бота. Он же не может игнорировать целый массив событий, а конкретное проигнорить нельзя.

@ivanmem
Copy link
Contributor Author

ivanmem commented Jun 17, 2023

Наверное эта задача частично решена в #1511 , но всё равно надо подумать как избавиться от таких ошибок в будущем.

@Panuchi
Copy link
Contributor

Panuchi commented Jun 19, 2023

Исправлено. Нужен релиз.

@Panuchi Panuchi added the Вопрос Требуется дополнительная информация по задаче label Jun 19, 2023
@VKohai
Copy link

VKohai commented Jul 5, 2023

Уже есть полное решение проблемы?

@inyutin-maxim
Copy link
Member

Уже есть полное решение проблемы?

Пока не было релиза. Скоро сделаем

@Panuchi
Copy link
Contributor

Panuchi commented Jul 6, 2023

@inyutin-maxim
Можно сделать так, чтобы вместо падения было null и где-нибудь лог ошибок? Из-за таких ошибок парализуется работа всего бота. Он же не может игнорировать целый массив событий, а конкретное проигнорить нельзя.

Это возможно?

@Panuchi Panuchi added this to the v1.75.0 milestone Jul 10, 2023
@inyutin-maxim
Copy link
Member

@inyutin-maxim Можно сделать так, чтобы вместо падения было null и где-нибудь лог ошибок? Из-за таких ошибок парализуется работа всего бота. Он же не может игнорировать целый массив событий, а конкретное проигнорить нельзя.

Это возможно?

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

Второй путь сделать все свойства с типом enum как наллабл.

На вскидку так

@ivanmem
Copy link
Contributor Author

ivanmem commented Jul 10, 2023

Второй путь сделать все свойства с типом enum как наллабл.

Нельзя, чтобы подобные ошибки были незамеченными, поэтому если оно будет null, то куда-то в лог должна записываться причина.

@inyutin-maxim inyutin-maxim modified the milestones: v1.75.0, v1.76.0 Jul 10, 2023
@inyutin-maxim
Copy link
Member

Второй путь сделать все свойства с типом enum как наллабл.

Нельзя, чтобы подобные ошибки были незамеченными, поэтому если оно будет null, то куда-то в лог должна записываться причина.

Проблема в том что сериализатор не обладает логгером, как и его конвертеры

@ivanmem
Copy link
Contributor Author

ivanmem commented Jul 12, 2023

@inyutin-maxim может тогда сделаем для таких полей аналоги с постфиксом Raw в формате string? При null будем опираться на них.

@Panuchi
Copy link
Contributor

Panuchi commented Jul 23, 2023

Перенесено в #1556

@Panuchi Panuchi closed this as completed Jul 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Вопрос Требуется дополнительная информация по задаче
Projects
None yet
Development

No branches or pull requests

4 participants