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
[ Widget Preview ] Null assertion failure when adding @Preview() to unsupported AST nodes #173959
flutter widget-preview start will currently crash on 3.35.{0,1} if the @Preview() annotation is added to an AST node that isn't part of a valid preview.
For example, adding @Preview() to a class declaration will cause the following crash:
Thread 0 main thread_TypeError: Null check operator used on a null value
at _PreviewVisitor.visitAnnotation(dependency_graph.dart:108)
at AnnotationImpl.accept(ast.dart:366)
at NodeListImpl.accept(ast.dart:13243)
at _AnnotatedNodeMixin._visitCommentAndAnnotations(ast.dart:19496)
at AnnotatedNodeImpl.visitChildren(ast.dart:165)
at ClassDeclarationImpl.visitChildren(ast.dart:2939)
at RecursiveAstVisitor.visitClassDeclaration(visitor.dart:940)
at ClassDeclarationImpl.accept(ast.dart:2935)
at NodeListImpl.accept(ast.dart:13243)
at CompilationUnitImpl.visitChildren(ast.dart:3611)
at LibraryPreviewNode.findPreviews(dependency_graph.dart:185)
at PreviewDetector._findPreviewFunctions(preview_detector.dart:202)
at <asynchronous gap>(async)
at PreviewDetector.initialize(preview_detector.dart:54)
at <asynchronous gap>(async)
at WidgetPreviewStartCommand.runCommand(widget_preview.dart:305)
at <asynchronous gap>(async)
at FlutterCommand.run.<anonymous closure>(flutter_command.dart:1581)
at <asynchronous gap>(async)
at AppContext.run.<anonymous closure>(context.dart:154)
at <asynchronous gap>(async)
at CommandRunner.runCommand(command_runner.dart:212)
at <asynchronous gap>(async)
at FlutterCommandRunner.runCommand.<anonymous closure>(flutter_command_runner.dart:503)
at <asynchronous gap>(async)
at AppContext.run.<anonymous closure>(context.dart:154)
at <asynchronous gap>(async)
at FlutterCommandRunner.runCommand(flutter_command_runner.dart:438)
at <asynchronous gap>(async)
at run.<anonymous closure>.<anonymous closure>(runner.dart:98)
at <asynchronous gap>(async)
at AppContext.run.<anonymous closure>(context.dart:154)
at <asynchronous gap>(async)
at main(executable.dart:101)
at <asynchronous gap>(async)
Annotated nodes that aren't valid previews should be ignored.
This is a top 10 crasher for the tool for 3.35.{0,1}.
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 -v and a minimal reproduction of the issue.
Activity
[ Widget Preview ] Fix null assertion when trying to add `@Preview()`…
[ Widget Preview ] Don't try to instantiate invalid `@Preview()` appl…
[ Widget Preview ] Don't try to instantiate invalid `@Preview()` appl…
[ Widget Preview ] Fix null assertion when trying to add `@Preview()`…
[ Widget Preview ] Don't try to instantiate invalid `@Preview()` appl…
[ Widget Preview ] Don't try to instantiate invalid `@Preview()` appl…
[ Widget Preview ] Don't try to instantiate invalid `@Preview()` appl…
github-actions commentedon Sep 4, 2025
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.