Repository navigation
Closed
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: renderingUI glitches reported at the engine/skia or impeller rendering levelUI glitches reported at the engine/skia or impeller rendering levelengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.found in release: 3.35Found to occur in 3.35Found to occur in 3.35found in release: 3.36Found to occur in 3.36Found to occur in 3.36frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onplatform-iosiOS applications specificallyiOS applications specificallyr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer versionteam-iosOwned by iOS platform teamOwned by iOS platform teamtriaged-iosTriaged by iOS platform teamTriaged by iOS platform team
Description
Steps to reproduce
Description
When using BackdropFilter with ClipRRect to create a rounded blur effect,
the blur unexpectedly leaks outside the clipped rounded corners only when a UiKitView is present in the widget tree.
This works correctly if no UiKitView is used, so the issue seems to be related to Flutter’s platform view rendering on iOS.
Steps to Reproduce
- Create a Flutter project.
- Add a custom
UiKitView(usingFlutterPlatformViewFactory). - Overlay a
BackdropFilterwithClipRRect.
Expected results
The blur should be clipped perfectly to the rounded rectangle, with no artifacts outside the corners.
Actual results
On iOS, when a UiKitView exists, the blur leaks outside the rounded corners (see screenshot).
Code sample
Code sample
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
// Register the platform view factory
let registrar = self.registrar(forPlugin: "MyUiKitViewPlugin")
let factory = MyUiKitViewFactory(messenger: registrar!.messenger())
registrar!.register(factory, withId: "my-view-type")
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
class MyUiKitViewFactory: NSObject, FlutterPlatformViewFactory {
private var messenger: FlutterBinaryMessenger
init(messenger: FlutterBinaryMessenger) {
self.messenger = messenger
super.init()
}
func create(
withFrame frame: CGRect,
viewIdentifier viewId: Int64,
arguments args: Any?
) -> FlutterPlatformView {
return MyUiKitView(
frame: frame,
viewIdentifier: viewId,
arguments: args,
binaryMessenger: messenger
)
}
func createArgsCodec() -> FlutterMessageCodec & NSObjectProtocol {
return FlutterStandardMessageCodec.sharedInstance()
}
}
class MyUiKitView: NSObject, FlutterPlatformView {
private var _view: UIView
init(
frame: CGRect,
viewIdentifier viewId: Int64,
arguments args: Any?,
binaryMessenger messenger: FlutterBinaryMessenger?
) {
_view = UIView()
super.init()
}
func view() -> UIView {
return _view
}
}void main() {
runApp(const MainApp());
}
class MainApp extends StatelessWidget {
const MainApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Stack(
fit: StackFit.expand,
children: [
Image.asset(
'assets/img.png',
fit: BoxFit.cover,
),
UiKitView(viewType: 'my-view-type'),
Positioned(
top: 100,
left: 40,
child: ClipRRect(
borderRadius: BorderRadius.circular(80),
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 4, sigmaY: 4),
child: Container(
height: 200,
width: 300,
color: Colors.white.withOpacity(0.2),
),
),
)),
],
),
),
);
}
}
Screenshots or Video
Logs
Logs
Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.35.2, on macOS 15.6.1 24G90 darwin-arm64, locale
zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK version
36.0.0-rc4)
! Some Android licenses not accepted. To resolve this, run: flutter doctor
--android-licenses
[✓] Xcode - develop for iOS and macOS (Xcode 16.4)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.2)
[✓] VS Code (version 1.103.2)
[✓] Connected device (5 available)Reacted by Luke Moody, Francesco Coppola, ds797 and Furkan Acar
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: renderingUI glitches reported at the engine/skia or impeller rendering levelUI glitches reported at the engine/skia or impeller rendering levelengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.found in release: 3.35Found to occur in 3.35Found to occur in 3.35found in release: 3.36Found to occur in 3.36Found to occur in 3.36frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onplatform-iosiOS applications specificallyiOS applications specificallyr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer versionteam-iosOwned by iOS platform teamOwned by iOS platform teamtriaged-iosTriaged by iOS platform teamTriaged by iOS platform team

Activity
wwmz commentedon Sep 8, 2025
tirth-patel-nc commentedon Sep 8, 2025
@SeeyouYsen Thanks for the report. Seeing the same behaviour with latest SDK versions on iOS. check the mouse pointer for the leak.
#99691, #89585 might be related
wwmz commentedon Sep 9, 2025
Solved by using native UIBlurEffect
timcreatedit commentedon Oct 10, 2025
@tirth-patel-nc is
workaround-availablereally valid here? BackdropFilter can be much more than blurtimcreatedit commentedon Oct 10, 2025
People are reporting this in my repository as well: whynotmake-it/flutter_liquid_glass#64
Hari-07 commentedon Jan 28, 2026
Isn't this the same issue as #115926 ? In which case there's a fix thats been merged in already
jmagman commentedon Jan 28, 2026
Thank you @Hari-07! That fix is available in beta 3.41.0-0.0.pre, @SeeyouYsen or @timcreatedit can you confirm?
github-actions commentedon Feb 12, 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.