Fix a TGS sticker Telegram rejected
@Stickers refuses a file and tells you nothing. It is almost always one of four things — and three of them can be repaired automatically. Send the file to our bot, get a plain-English report for free, and the repaired .tgs back in the same chat.
The four reasons @Stickers refuses a .tgs file
Telegram validates animated stickers against a strict subset of Lottie. Anything outside it is refused silently, which is why the same file can look perfect in your editor and still be turned away.
1 · A gradient on a stroke
The most common one by far. Telegram allows gradient fills but not gradient strokes. Exporters produce them happily, so the file looks fine everywhere except in Telegram. It can be repaired by converting the stroke into a filled outline — same appearance, allowed shape.
2 · Alpha or track mattes
Mattes let one layer cut out another. Telegram does not support them, so a sticker that relies on a matte is refused. Baking the matte flat keeps the look and removes the unsupported construct.
3 · The missing tgs:1 marker
A .tgs is a gzipped Lottie with a marker that says it was made for Telegram. Export from a generic tool and the marker is absent — the file is valid Lottie and still invalid TGS. Setting it is a one-line repair.
4 · Over 64 KB
A hard limit, and the one thing no repair can talk its way around. If your file is above it after the other fixes, the animation itself has to get simpler: fewer points, fewer keyframes, shorter duration.
What the check tells you
Send any .tgs file — as a document, or just forward the animated sticker — and you get a report split into two halves: what can be repaired automatically, and what needs a change in your animation editor. Canvas size, frame rate and duration belong to the second half; nothing can fix a 90-frame animation that Telegram allows 60 frames for, and pretending otherwise would only waste your time.
The repair itself is a port of Telegram's own bodymovin rules, so a file that passes our check is a file @Stickers accepts. After repairing, the result is verified against the same rules again and the report says whether it now passes — you are not asked to find out by uploading and being refused a second time.
Why a bot and not a website
Your sticker never leaves Telegram. There is no upload form, no account, no waiting for an email — you send the file in a chat and the repaired one arrives in the same chat. The first repair is free; after that it costs a few Telegram Stars per file, paid in Telegram, no card involved.
The same bot runs Capzules, where animated NFTs are minted on TON — the sticker tooling grew out of building that, because every animated NFT layer is a TGS file that has to survive the same rules.
FAQ
Why does Telegram reject my .tgs file?
Almost always a gradient on a stroke, an alpha or track matte, a missing tgs:1 marker, or a file over 64 KB. @Stickers refuses without naming the reason, which is what makes it feel arbitrary.
Can gradient strokes really be fixed without changing the look?
Yes. The stroke is converted into a filled outline of the same shape and colour. Alpha and track mattes are baked flat the same way.
What cannot be repaired automatically?
Canvas size, frame rate, duration and unsupported effects. Those live in your animation editor — the check names each one so you know exactly what to change.
Is it free?
The check always is. Your first repair is free as well; after that it is a few Telegram Stars per file.
Does my sticker get uploaded to a website?
No. Everything happens in a Telegram chat with the bot.
Can I convert a Lottie JSON to TGS?
Yes — send the JSON and it comes back as a compliant .tgs, with the same checks applied.