vknet / vk

Vkontakte API for .NET
https://vknet.github.io/vk/
MIT License
568 stars 222 forks source link

The reader's MaxDepth of 64 has been exceeded #1618

Open ivanmem opened 3 months ago

ivanmem commented 3 months ago

Когда на сообщение отвечено более 64х раз при вызове метода Messages.GetByConversationMessageId вылетает ошибка:

"Newtonsoft.Json.JsonReaderException", "Message": "The reader's MaxDepth of 64 has been exceeded.

Есть минимум три варианта решения: 1) реализовать настройку сериализатора, наподобие такого:

image 2) поменяйте конфигурацию в вкнет до MaxDepth =128 или сколько нужно (не знаю точно) 3) смените MaxDepth конкретно для метода GetByConversationMessageId

CaCTuCaTu4ECKuu commented 1 month ago

А это вообще как бы, ну, реалистичный use-case?? Сколько не поднимай всегда можно сделать больше.

Т.к. у нас все типизировано и ВК тоже отдает адекватные данные то в принципе можно выставить довольно большое значение глубины по дефолту, посмотрю потом, добавлю чтобы можно было у VkApi менять стерилизатор

ivanmem commented 1 month ago

ну, реалистичный use-case??

Редкий случай, но да, реалистичный. Я хотел сохранять весь контекст в чат боте с помощью ответа на предыдущее сообщение. Вот в таких случаях бывает и больше 100 сообщений. Но 200 и тд - вряд ли будет.

CaCTuCaTu4ECKuu commented 1 month ago

Где есть 100 там и 200 будет, я понял Ну тогда в конфиг какой-то добавлю чтоб можно было переопределить, а кто сломает сам дурак