Repository navigation
Description
Steps to reproduce
It seems most of our golden test images changed after i updated to macOS 26.4. I'm not 100% sure this is caused by the upgrade, but i can't see what else has changed. What is even stranger i can't really see any changes to the images when looking at them. Maybe the font rendering has slightly changed ? See the header for "News" and "My Bookings", i think one looks slightly thicker.
This was caused by running: flutter test --update-goldens which runs the testGoldens functions.
I can't actually roll back to a previous macOS version to test this.
The goldens changed using both Flutter version 3.38.4 and 3.41.5 (latest).
Expected results
I didn't expect most of the goldens images in our codebase to change.
Actual results
Most of our goldens images changed.
Code sample
Code sample
I can't really create a reproducible sample as i'm not able to test this on a previous macOS version at the moment and i can't share our proprietary code (which is quite complex anyways).
[Paste your code here]Screenshots or Video
Logs
Logs
[Paste your logs here]Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.41.5, on macOS 26.4 25E246 darwin-arm64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 36.1.0)
[✓] Xcode - develop for iOS and macOS (Xcode 26.3)
[✓] Chrome - develop for the web
[✓] Connected device (2 available)
[✓] Network resourcesUnfortunately, this is a known drawback of golden testing: these tests are highly sensitive to the environment and are generally only reliable when run on a machine with the exact same configuration (OS version, OS settings, etc) as the one used to produce the original image.
In this case, it appears that macOS 26.4 introduced changes to system-level font rendering. This effectively invalidates golden images produced on macOS 26.3 or older if they contain text, particularly when using custom fonts. Because the Flutter team does not control how the underlying operating system renders fonts, this isn't something we can fix in the framework itself.
If your golden files use custom fonts and t…


Activity
saurabh-mirajkar commentedon Mar 26, 2026
@erf Thanks for the report!
To help us investigate, could you please provide:
erf commentedon Mar 26, 2026
My colleague was still running macOS version 26.3.1 and helped me create a minimal golden test (I'll include it at the end).
I can confirm that the goldens he produced on 26.3.1 fails when i run it on my machine 26.4. Here is the before and after image and the test output. Notice there is only a 18px diff detected which is small and probably why you can't see the difference.
BTW maybe consider running these golden tests on various platform versions before releasing to stable.
Golden on 26.3.1
Golden on 26.4
Output from running
fvm flutter test(fvm is set to run Flutter version 3.38.4, but it should be the same result on later versions)Here is the full test example:
[-]Most goldens changed after upgrade to macOS 26.4[/-][+]Goldens images changed after upgrade to macOS 26.4[/+]saurabh-mirajkar commentedon Mar 27, 2026
@erf Thanks for following up. I'm having trouble reproducing the issue because the provided code depends on missing files like
FontManifest.jsonandgoldens/minimal_example.pngPlease provide a fully self-contained example so I can investigate further. Also, confirm whether any specific fonts are used (custom vs system fonts).
timcreatedit commentedon Mar 27, 2026
We are seeing the same issue
piotrmoskala commentedon Mar 27, 2026
Hi @erf @saurabh-mirajkar
Simple reproducible sample:
https://github.com/piotrmoskala/golden_compare_sample
Goldens inside are generated on macOS 26.4, we tested it with @timcreatedit who runs macOS 15 and it generated different results.
erf commentedon Mar 27, 2026
The
FontManifest.jsonshould be included if you create a new project and add the example . Theminimal_example.pngis the first image included in my original post. We use the custom font "Open Sans" .If you can't use the standalone example above that @piotrmoskala provided, then we'll try and make something over the weekend.
13 remaining items
CaleyD commentedon Mar 31, 2026
We're also being blocked by this
Here's the workaround my teams have used in the past to get beyond very minor golden diffs (use with caution and ideally only temporarily):
ljubenAtPropertyMe commentedon Apr 7, 2026
Also getting blocked by this. Can we get an ETA if someone is working on a fix?
erf commentedon Apr 7, 2026
We ended up just making a new commit for all the goldens changes and build on top of that - there is no way to know when there is a fix ready via the official channels.
ljubenAtPropertyMe commentedon Apr 7, 2026
That's what we are considering, but it would have been nice to get some actual fix for the issue. Thanks for sharing your approach @erf !
loic-sharma commentedon Apr 8, 2026
Unfortunately, this is a known drawback of golden testing: these tests are highly sensitive to the environment and are generally only reliable when run on a machine with the exact same configuration (OS version, OS settings, etc) as the one used to produce the original image.
In this case, it appears that macOS 26.4 introduced changes to system-level font rendering. This effectively invalidates golden images produced on macOS 26.3 or older if they contain text, particularly when using custom fonts. Because the Flutter team does not control how the underlying operating system renders fonts, this isn't something we can fix in the framework itself.
If your golden files use custom fonts and the changes do not appear to be a real regression, I'd update your goldens to make the macOS 26.4 output your new baseline.
To mitigate these kinds of breakages in the future, I'd recommend:
erf commentedon Apr 9, 2026
Thanks for the answer and suggestions.
I was a bit surprised by the statement:
I haven't done any deep dives into the Flutter engine, but i would assume that for a cross platform rendering engine, even if you use a OS specific rendering library like Core Text, you would still be in control of laying out and rendering text. Similar like to how the Ghostty terminal does this on various platforms.
Do you have any idea what exact system level changes or libraries lead to this?
mx1up commentedon Apr 9, 2026
when using OS specific api to render text to achieve native look, you are also dependent on how that api renders text..
loic-sharma commentedon Apr 9, 2026
Both Ghostty and Flutter uses CoreText to turn font data into bitmaps on macOS. Text rendering is hard. But yes, Flutter does use platform-agnostic logic for things like glyph selection (through Harfbuzz) or line breaking (through Skia Paragraph). Here's a fun read if you're interested in learning more: https://faultlore.com/blah/text-hates-you/
vashworth commentedon Apr 17, 2026
Since there is nothing actionable for Flutter to do here, closing.
Please refer to @loic-sharma comment for details and mitigations: #184182 (comment)
github-actions commentedon May 1, 2026
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.