В соответствии с документами для update_with_media :
Текст чириканья будет перезаписан с учетом URL-адресов мультимедиа, что приведет к уменьшению количества символов, разрешенных вЧирикать текст.Если URL-адреса не могут быть добавлены без усечения текста, твит будет отклонен, и этот метод вернет ошибку HTTP 403.
Итак, я предполагаю, что ограничение для текста составляет 140 - image_url.length
-- поэтому вам нужно выяснить, какой длины URL-адреса изображений в твиттере, и, возможно, добавить некоторые отступы для безопасности, в зависимости от того, что вы делаете.
Бывает, что есть вызов API, который даст вамответ - GET help/configuration
вернет набор параметров, один из которых characters_reserved_per_media
- я предполагаю, что если вы вычтете эту сумму из 140, вы получите максимальное количество символов, которое вы можете использовать.