You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[BUG] Emoji rendering breaks subsequent canvas drawing on ARM Linux (no error) #2567
Describe the bug:
When attempting to render an emoji character (⚠️) using the "Segoe UI Emoji" font on ARM Linux, the emoji fails to render correctly, and all subsequent drawing operations are lost — the canvas effectively becomes blank after calling fillText() for that emoji. No error is thrown, and the process continues without any crash or warning.
Steps to reproduce:
const{ createCanvas }=require('canvas');constcanvas=createCanvas(400,200);constctx=canvas.getContext('2d');// This works finectx.fillStyle='red';ctx.fillRect(0,0,400,200);ctx.fillStyle='white';ctx.font='48px "Segoe UI Emoji"';ctx.fillText('Hello',50,50);// Renders correctly// This emoji breaks everythingctx.fillText('⚠️',50,100);// Emoji not rendered, subsequent drawing lost// The following drawing never appearsctx.fillStyle='blue';ctx.fillText('After emoji',50,150);// NOT RENDEREDconsole.log('No error, no crash, but canvas is effectively corrupted after the emoji');
Activity
948764321 commentedon Apr 24, 2026
The same happens with
✔️chearon commentedon May 15, 2026
What happens if you set
ctx.textDrawingMode = 'glyph', does it work then?948764321 commentedon May 26, 2026
The production environment has this, but there are still problems.
chearon commentedon Aug 16, 2026
Fixed by #2602 (
npm install canvas@next)