[GH-ISSUE #1567] Messages written in Cyrillic are truncated #1103

Open
opened 2026-05-07 00:30:17 +02:00 by BreizhHardware · 8 comments

Originally created by @ACheshirov on GitHub (Jan 24, 2026).
Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/1567

🐞 Describe the bug
For some reason, when I send messages in cyrillic, they often appear truncated in the Android app.

💻 Components impacted
Android app

💡 Screenshots and/or logs
Sometimes they are truncated after 200-300 characters, and sometimes after more, even though the official specification states that messages up to 4096 bytes should be supported.

I provide an example of a message that should be 2295 bytes long.
One screenshot is from the browser, and the other is from the Android app.
The browser
The Android app

Originally created by @ACheshirov on GitHub (Jan 24, 2026). Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/1567 :lady_beetle: **Describe the bug** For some reason, when I send messages in cyrillic, they often appear truncated in the Android app. :computer: **Components impacted** Android app :bulb: **Screenshots and/or logs** Sometimes they are truncated after 200-300 characters, and sometimes after more, even though the official specification states that messages up to 4096 bytes should be supported. I provide an example of a message that should be 2295 bytes long. One screenshot is from the browser, and the other is from the Android app. [The browser](https://i.imgur.com/mMvLn0D.png) [The Android app](https://i.imgur.com/xzh5rW9.png)
Author
Owner

@binwiederhier commented on GitHub (Jan 24, 2026):

Fascinating. Can you paste an example text

<!-- gh-comment-id:3794730511 --> @binwiederhier commented on GitHub (Jan 24, 2026): Fascinating. Can you paste an example text
Author
Owner

@ACheshirov commented on GitHub (Jan 25, 2026):

Sure. That's the text from the example:

"За мен въпросът с регистрацията на партия е малко рискован, защото може да не стигне времето за регистрация. Вероятно имат готовност да минат през някакви други готови партии, това обаче всичкото е технология. Важното е, че Радев е човекът, който е гарантът за всичко това и той го избира. И точно затова ние всичките сме много внимателни в говоренето, защото той трябва да определи мястото на всеки един от нас", подчертава той.

При напускането на президентството вчера Румен Радев подчерта "не могат да спрат вълната". По този въпрос Кутев отбеляза: "Безспорно той ще вдигне вълна, но дали ще е 300 000, 500 000 или 800 000 е изключително важно. Защото това всъщност ще доведе до резултат до каква степен ние можем да обезсмислим контролирания вот, купуването на гласове и т.н. Обемът на вълната никой от нас не знае какъв е. Радев според мен се появява в момента в политиката като абсолютната алтернатива на модела. Само че като кажем, че е алтернатива на модела, това е клише, кой е този модел? За мен този модел е някаква смесица от корупция, безгръбначност и от заместване на истинските стойности, от арогантност. Новото е, че с поведението си Радев е показал, че е алтернатива на безгръбначността, на сглобката, на безпринципността", добави бившият съветник на Румен Радев.

<!-- gh-comment-id:3796829789 --> @ACheshirov commented on GitHub (Jan 25, 2026): Sure. That's the text from the example: "За мен въпросът с регистрацията на партия е малко рискован, защото може да не стигне времето за регистрация. Вероятно имат готовност да минат през някакви други готови партии, това обаче всичкото е технология. Важното е, че Радев е човекът, който е гарантът за всичко това и той го избира. И точно затова ние всичките сме много внимателни в говоренето, защото той трябва да определи мястото на всеки един от нас", подчертава той. При напускането на президентството вчера Румен Радев подчерта "не могат да спрат вълната". По този въпрос Кутев отбеляза: "Безспорно той ще вдигне вълна, но дали ще е 300 000, 500 000 или 800 000 е изключително важно. Защото това всъщност ще доведе до резултат до каква степен ние можем да обезсмислим контролирания вот, купуването на гласове и т.н. Обемът на вълната никой от нас не знае какъв е. Радев според мен се появява в момента в политиката като абсолютната алтернатива на модела. Само че като кажем, че е алтернатива на модела, това е клише, кой е този модел? За мен този модел е някаква смесица от корупция, безгръбначност и от заместване на истинските стойности, от арогантност. Новото е, че с поведението си Радев е показал, че е алтернатива на безгръбначността, на сглобката, на безпринципността", добави бившият съветник на Румен Радев.
Author
Owner

@binwiederhier commented on GitHub (Jan 25, 2026):

Workaround: Enable instant delivery for the topic.

This is definitely a bug. Thank you for reporting.

It's fascinating that it took sooo long to be reported. I haven't fully figured out why, but I am writing some tests to test why the cyrillic test is truncated while other text is not.

This all centers around the fact that Firebase (FCM) does not allows sending messages longer than 4KB, so we have to truncate some of them. Also, we send the message body twice because APNS requires that.

Cyrillic also uses 2 bytes per character, so the text can generally be shorter than ASCII text.

<!-- gh-comment-id:3797129979 --> @binwiederhier commented on GitHub (Jan 25, 2026): **Workaround: Enable instant delivery for the topic.** This is definitely a bug. Thank you for reporting. It's fascinating that it took sooo long to be reported. I haven't fully figured out why, but I am writing some tests to test why the cyrillic test is truncated while other text is not. This all centers around the fact that Firebase (FCM) does not allows sending messages longer than 4KB, so we _have_ to truncate some of them. Also, we send the message body twice because APNS requires that. Cyrillic also uses 2 bytes per character, so the text can generally be shorter than ASCII text.
Author
Owner

@ACheshirov commented on GitHub (Jan 25, 2026):

Yes, actually, enabling instant delivery fixes it, but I'll still wait until you add the bug fix.
I don't really need instant delivery, as far as I know, it will likely consume my battery a bit faster, right?

<!-- gh-comment-id:3797412683 --> @ACheshirov commented on GitHub (Jan 25, 2026): Yes, actually, enabling instant delivery fixes it, but I'll still wait until you add the bug fix. I don't really need instant delivery, as far as I know, it will likely consume my battery a bit faster, right?
Author
Owner

@binwiederhier commented on GitHub (Jan 25, 2026):

It strongly depends on the phone. On my phone (OnePlus) and most people's phones it's not a lot of battery. I don't notice a difference. Maybe 1-2%.

Some people have real issues with 20-30% battery usage.

<!-- gh-comment-id:3797418727 --> @binwiederhier commented on GitHub (Jan 25, 2026): It strongly depends on the phone. On my phone (OnePlus) and most people's phones it's not a lot of battery. I don't notice a difference. Maybe 1-2%. Some people have real issues with 20-30% battery usage.
Author
Owner

@binwiederhier commented on GitHub (Jan 25, 2026):

It not an easy fix and it may take weeks. So don't hold your breath haha

<!-- gh-comment-id:3797419025 --> @binwiederhier commented on GitHub (Jan 25, 2026): It not an easy fix and it may take weeks. So don't hold your breath haha
Author
Owner

@ACheshirov commented on GitHub (Jan 26, 2026):

Oh, I've known about this bug for months, I was just too lazy to report it..
I can probably handle a few more weeks. :D

<!-- gh-comment-id:3798412413 --> @ACheshirov commented on GitHub (Jan 26, 2026): Oh, I've known about this bug for months, I was just too lazy to report it.. I can probably handle a few more weeks. :D
Author
Owner

@stadid commented on GitHub (Feb 11, 2026):

@binwiederhier

It not an easy fix and it may take weeks. So don't hold your breath haha

Also interested in fixing this bug.
So, if you have time please kindly put some resources in fixing it. Thank you!

<!-- gh-comment-id:3887041866 --> @stadid commented on GitHub (Feb 11, 2026): @binwiederhier > It not an easy fix and it may take weeks. So don't hold your breath haha Also interested in fixing this bug. So, if you have time please kindly put some resources in fixing it. Thank you!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ntfy#1103
No description provided.