Skip to content

Windows ListView+Tooltip can trigger error: Failed to update ui::AXTree, error: 9 will not be in the tree and is not the new root #182444

@yangyuan

Description

@yangyuan

Steps to reproduce

  1. Create an empty flutter project in Windows.
  2. Replace main.dart with my repro code.
  3. run and mouse hovering between container marked as A and B.

Then you will see the errors in console.


It seems only impacting Windows.

Here is my own mechanism analysis, just for reference.

ListView's two-pane semantics: RenderViewport adds useTwoPaneSemantics tag, causing _RenderScrollSemantics.assembleSemanticsNode() to create a synthetic _innerNode. This extra indirection isolates tooltip children from direct semantics update propagation.

Tooltip's OverlayPortal traversal grafting: Each Tooltip's overlay child (_RenderDeferredLayoutBox) is physically a child of _RenderTheater but semantically "grafted" to the tooltip's child via traversalChildIdentifier/traversalParentIdentifier.

The Bug Sequence (hover A → B)

  1. _handleMouseEnter on B fires — starts B's show (immediate) and A's dismiss (animated, 75ms)
  2. B's _RenderDeferredLayoutBox is added to the theater → markNeedsSemanticsUpdate()
  3. During SemanticsOwner.sendSemanticsUpdate(), A's deferred box node is detached and filtered into _detachedNodes
  4. Critical bug: Because A's node is filtered out before the traversal parent notification code runs, Tooltip A's child (TC_A) is never told its grafted traversal child is gone
  5. TC_A is never added to updatedVisitedNodes, so it never calls _addToUpdate() — no update sent to the engine
  6. The Windows AXTree still thinks TC_A has A's overlay node as a child, but that node no longer exists
  7. AXTree::Unserialize() fails: "* will not be in the tree and is not the new root"

Expected results

No errors.

Actual results

Throwing errors, though feature seems still not impacted.

Code sample

Code sample

Create an empty project and put this in main.dart

// Repro: ListView + 2 Tooltips → AXTree error on hover (Windows)
//
// Steps:
//   1. flutter run -d windows
//   2. Hover mouse over box A, then move to box B
//   3. Watch console for:
//      [ERROR:flutter/shell/platform/common/accessibility_bridge.cc(114)]
//      Failed to update ui::AXTree

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'AXTree Tooltip Repro',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
        useMaterial3: true,
      ),
      home: const TooltipReproPage(),
    );
  }
}

class TooltipReproPage extends StatelessWidget {
  const TooltipReproPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('AXTree Tooltip Repro')),
      body: ListView(
        children: [
          Row(
            children: [
              Tooltip(
                message: 'Tooltip A',
                child: Container(
                  width: 100,
                  height: 100,
                  alignment: Alignment.center,
                  decoration: BoxDecoration(
                    color: const Color(0xFFE3F2FD),
                    borderRadius: BorderRadius.circular(8),
                    border: Border.all(
                      width: 1,
                      color: const Color(0xFF90CAF9),
                    ),
                  ),
                  child: const Text('A'),
                ),
              ),
              const SizedBox(width: 16),
              Tooltip(
                message: 'Tooltip B',
                child: Container(
                  width: 100,
                  height: 100,
                  alignment: Alignment.center,
                  decoration: BoxDecoration(
                    color: const Color(0xFFF5F5F5),
                    borderRadius: BorderRadius.circular(8),
                    border: Border.all(
                      width: 1,
                      color: const Color(0xFFE0E0E0),
                    ),
                  ),
                  child: const Text('B'),
                ),
              ),
            ],
          ),
        ],
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration

N/A

Logs

Logs
[ERROR:flutter/shell/platform/common/accessibility_bridge.cc(114)] Failed to update ui::AXTree, error: 9 will not be in the tree and is not the new root
6
[ERROR:flutter/shell/platform/common/accessibility_bridge.cc(114)] Failed to update ui::AXTree, error: 13 will not be in the tree and is not the new root
5
[ERROR:flutter/shell/platform/common/accessibility_bridge.cc(114)] Failed to update ui::AXTree, error: 17 will not be in the tree and is not the new root
6
[ERROR:flutter/shell/platform/common/accessibility_bridge.cc(114)] Failed to update ui::AXTree, error: 19 will not be in the tree and is not the new root
7
[ERROR:flutter/shell/platform/common/accessibility_bridge.cc(114)] Failed to update ui::AXTree, error: 23 will not be in the tree and is not the new root
8
[ERROR:flutter/shell/platform/common/accessibility_bridge.cc(114)] Failed to update ui::AXTree, error: 27 will not be in the tree and is not the new root
7
[ERROR:flutter/shell/platform/common/accessibility_bridge.cc(114)] Failed to update ui::AXTree, error: 31 will not be in the tree and is not the new root
21
[ERROR:flutter/shell/platform/common/accessibility_bridge.cc(114)] Failed to update ui::AXTree, error: 35 will not be in the tree and is not the new root
3
[ERROR:flutter/shell/platform/common/accessibility_bridge.cc(114)] Failed to update ui::AXTree, error: 47 will not be in the tree and is not the new root

CHAT
FLUTTER AXTREE UPDATE ERROR WITH MULTIPLE ATTACHMENTS

Flutter Doctor output

Doctor output
flutter doctor -v
[√] Flutter (Channel stable, 3.41.1, on Microsoft Windows [Version 10.0.26200.7781],
    locale en-US) [590ms]
    • Flutter version 3.41.1 on channel stable at C:\Repos\flutter\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 582a0e7c55 (3 days ago), 2026-02-12 17:12:32 -0800
    • Engine revision 3452d735bd
    • Dart version 3.11.0
    • DevTools version 2.54.1
    • Feature flags: enable-web, enable-linux-desktop, enable-macos-desktop,
      enable-windows-desktop, enable-android, enable-ios, cli-animations,
      enable-native-assets, omit-legacy-version-file, enable-lldb-debugging,
      enable-uiscene-migration

[√] Windows Version (Windows 11 or higher, 25H2, 2009) [1,186ms]

[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0) [478ms]
    • Android SDK at C:\Users\yuanyang\AppData\Local\Android\sdk
    • Emulator version 35.2.10.0 (build_id 12414864) (CL:N/A)
    X cmdline-tools component is missing.
      Try installing or updating Android Studio.
      Alternatively, download the tools from
      https://developer.android.com/studio#command-line-tools-only and make sure to set
      the ANDROID_HOME environment variable.
      See https://developer.android.com/studio/command-line for      See https://developer.android.com/studio/command-line for more details.
    X Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/to/windows-android-setup for more details.

[√] Chrome - develop for the web [138ms]
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Enterprise 2022 17.14.26)
    [137ms]
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Enterprise
    • Visual Studio Enterprise 2022 version 17.14.36930.0      
    • Windows 10 SDK version 10.0.26100.0

[√] Connected device (3 available) [399ms]
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version
      10.0.26200.7781]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 144.0.7559.133
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 145.0.3800.58

[√] Network resources [782ms]
    • All expected network resources are available.

! Doctor found issues in 1 category.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)f: material designflutter/packages/flutter/material repository.platform-windowsBuilding on or for Windows specificallyteam-windowsOwned by the Windows platform teamtriaged-windowsTriaged by the Windows platform team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions