Skip to content

Magnifier flicks and unexpectedly deactivates itself #20860

Open

Description

@CyrilleB79

Sometimes, errors in virtual buffers cause Magnifier to flick and crash (deactivate itself):

  • It sometimes happens when closing a Firefox tab (maybe 1/10 times)
  • it happens with Character Information add-on when opening its report in a browseable message for some characters such as "𝔓".
  • it also occurs in other situations.

Below is a 100% reproducible minimal test case constructed from the issue with Character Information add-on.

Steps to reproduce

  • Enable Magnifier with inverted colors
  • Open Python console
  • enter the following and validate:
    import ui;ui.browseableMessage("<p>𝔓 power set</p>", isHtml=True)

Actual behavior

  • Magnifier crashes and reactivate 3 times, causing screen flicking.
  • at the end, Magnifier remains disabled
  • errors are logged

Expected behavior

  1. Magnifier should not crash. In case it cannot retrieve tracking information, it should filter the exception and log it. But the magnified view and color filters should remain active, even if tracking does not work for a time. If the duration where tracking does not work is expected to be long, e.g. more than 1 second or after focus / cursor have movee, it should be reported (e.g. with ui.message) that there is a tracking issue with the magnifier.
  2. If there is an issue making Magnifier crash, it should not attempt to relaunch itself. Indeed, this can cause flicking, with seizure risk as explained in Pause after changing magnifier colour filtering #20750. Moreover, I've never seen a situation where Magnifier crashes and reactivates successfully.

NVDA logs, crash dumps and other attachments

nvda.log

System configuration

NVDA installed/portable/running from source

Installed

NVDA version

2026.3beta2

Windows version

Windows 11 23H2 (AMD64) build 22631.7517

Name and version of other software in use when reproducing the issue

N/A

Other information about your system

N/A

Other questions

Does the issue still occur after restarting your computer?

  • For this specific STR: not yet tested
  • For crash/flicking issue in general (e.g. Firefox tab closing): yes

Have you tried any other versions of NVDA? If so, please report their behaviors

Yes. Same behaviour with 2026.2 (launcher).

If NVDA add-ons are disabled, is your problem still occurring?

Yes

Does the issue still occur after you run the System Accessibility Repair Tool in NVDA's tools menu?

Not tested

Activity

  1. added theissue type on Sep 17, 2026
  2. CyrilleB79 commented on Sep 17, 2026

    @CyrilleB79
    CollaboratorAuthor

    @seanbudd given the work done in #20750, you may want to target this one for 2026.3, at least for the flicking part, i.e. to disable auto-relaunching of the magnifier.
    The flicking risk in this issue is much more realistic than the one discussed in #20750.

  3. added this to the 2026.3 milestone on Sep 18, 2026
  4. added
    p2https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority
    release/blockingthis issue blocks the milestone release
    triagedHas been triaged, issue is waiting for implementation.
    on Sep 18, 2026
  5. seanbudd commented on Sep 18, 2026

    @seanbudd
    Member

    We will probably need to change the crash handling behaviour first to ensure the seizure risk is removed, and then look at addressing the crash possibly in a different release to 2026.3

  6. CyrilleB79 commented on Sep 22, 2026

    @CyrilleB79
    CollaboratorAuthor

    Five days ago, I wrote in the initial description of this issue:

    Moreover, I've never seen a situation where Magnifier crashes and reactivates successfully.

    It's no longer true, even if probably not frequent. Here is the log:

    IO - inputCore.InputManager.executeGesture (12:48:15.447) - winInputHook (17012):
    Input: kb(desktop):alt+tab
    DEBUGWARNING - UIAHandler.UIAHandler.getNearestWindowHandle (12:48:15.656) - Dummy-18204 (16976):
    error walking up to an element with a valid windowHandle
    Traceback (most recent call last):
      File "UIAHandler\__init__.pyc", line 1438, in getNearestWindowHandle
    _ctypes.COMError: (-2147467259, 'Erreur non spécifiée', (None, None, None, 0, None))
    DEBUG - config.featureFlag._validateConfig_featureFlag (12:48:15.702) - Dummy-18205 (16976):
    Validating feature flag: DEFAULT, optionsEnum: WindowsTerminalStrategyFlag, behaviorOfDefault: DIFFING
    ERROR - eventHandler.executeEvent (12:48:15.749) - MainThread (13736):
    error executing event: gainFocus on <NVDAObjects.Dynamic_EditableTextLogContainer_DiffBasedWinTerminalUIAXamlEditableTextEditableTextWithAutoSelectDetectionUIA object at 0x000001A66059A090> with extra args of {}
    Traceback (most recent call last):
      File "eventHandler.pyc", line 350, in executeEvent
      File "eventHandler.pyc", line 386, in doPreGainFocus
      File "api.pyc", line 190, in setFocusObject
      File "api.pyc", line 342, in setNavigatorObject
      File "review.pyc", line 134, in setCurrentMode
      File "review.pyc", line 28, in getObjectPosition
      File "documentBase.pyc", line 76, in makeTextInfo
      File "NVDAObjects\UIA\__init__.pyc", line 498, in __init__
      File "NVDAObjects\UIA\__init__.pyc", line 1105, in collapse
    _ctypes.COMError: (-2147467259, 'Erreur non spécifiée', (None, None, None, 0, None))
    WARNING - _magnifier.magnifier.Magnifier._updateMagnifier (12:48:15.860) - MainThread (13736):
    Transient error updating magnifier (1/3)
    Traceback (most recent call last):
      File "_magnifier\magnifier.pyc", line 227, in _updateMagnifier
      File "_magnifier\magnifier.pyc", line 433, in _managePanning
      File "_magnifier\utils\focusManager.pyc", line 68, in getCurrentFocusCoordinates
      File "_magnifier\utils\focusManager.pyc", line 210, in _getReviewPosition
      File "api.pyc", line 243, in getReviewPosition
      File "review.pyc", line 103, in getPositionForCurrentMode
      File "review.pyc", line 28, in getObjectPosition
      File "documentBase.pyc", line 76, in makeTextInfo
      File "NVDAObjects\UIA\__init__.pyc", line 498, in __init__
      File "NVDAObjects\UIA\__init__.pyc", line 1105, in collapse
    _ctypes.COMError: (-2147467259, 'Erreur non spécifiée', (None, None, None, 0, None))
    WARNING - _magnifier.magnifier.Magnifier._updateMagnifier (12:48:15.889) - MainThread (13736):
    Transient error updating magnifier (2/3)
    Traceback (most recent call last):
      File "_magnifier\magnifier.pyc", line 227, in _updateMagnifier
      File "_magnifier\magnifier.pyc", line 433, in _managePanning
      File "_magnifier\utils\focusManager.pyc", line 68, in getCurrentFocusCoordinates
      File "_magnifier\utils\focusManager.pyc", line 210, in _getReviewPosition
      File "api.pyc", line 243, in getReviewPosition
      File "review.pyc", line 103, in getPositionForCurrentMode
      File "review.pyc", line 28, in getObjectPosition
      File "documentBase.pyc", line 76, in makeTextInfo
      File "NVDAObjects\UIA\__init__.pyc", line 498, in __init__
      File "NVDAObjects\UIA\__init__.pyc", line 1105, in collapse
    _ctypes.COMError: (-2147467259, 'Erreur non spécifiée', (None, None, None, 0, None))
    ERROR - _magnifier.magnifier.Magnifier._updateMagnifier (12:48:15.904) - MainThread (13736):
    Error updating magnifier (3/3), attempting recovery
    Traceback (most recent call last):
      File "_magnifier\magnifier.pyc", line 227, in _updateMagnifier
      File "_magnifier\magnifier.pyc", line 433, in _managePanning
      File "_magnifier\utils\focusManager.pyc", line 68, in getCurrentFocusCoordinates
      File "_magnifier\utils\focusManager.pyc", line 210, in _getReviewPosition
      File "api.pyc", line 243, in getReviewPosition
      File "review.pyc", line 103, in getPositionForCurrentMode
      File "review.pyc", line 28, in getObjectPosition
      File "documentBase.pyc", line 76, in makeTextInfo
      File "NVDAObjects\UIA\__init__.pyc", line 498, in __init__
      File "NVDAObjects\UIA\__init__.pyc", line 1105, in collapse
    _ctypes.COMError: (-2147467259, 'Erreur non spécifiée', (None, None, None, 0, None))
    DEBUG - _magnifier.fullscreenMagnifier.FullScreenMagnifier._attemptRecovery (12:48:16.005) - MainThread (13736):
    Attempting full-screen magnifier recovery (attempt 1/3)
    DEBUG - _magnifier.fullscreenMagnifier.FullScreenMagnifier._attemptRecovery (12:48:16.073) - MainThread (13736):
    Full-screen magnifier recovery succeeded
    WARNING - _magnifier.magnifier.Magnifier._updateMagnifier (12:48:16.103) - MainThread (13736):
    Transient error updating magnifier (1/3)
    Traceback (most recent call last):
      File "_magnifier\magnifier.pyc", line 227, in _updateMagnifier
      File "_magnifier\magnifier.pyc", line 433, in _managePanning
      File "_magnifier\utils\focusManager.pyc", line 68, in getCurrentFocusCoordinates
      File "_magnifier\utils\focusManager.pyc", line 210, in _getReviewPosition
      File "api.pyc", line 243, in getReviewPosition
      File "review.pyc", line 103, in getPositionForCurrentMode
      File "review.pyc", line 28, in getObjectPosition
      File "documentBase.pyc", line 76, in makeTextInfo
      File "NVDAObjects\UIA\__init__.pyc", line 498, in __init__
      File "NVDAObjects\UIA\__init__.pyc", line 1105, in collapse
    _ctypes.COMError: (-2147467259, 'Erreur non spécifiée', (None, None, None, 0, None))
    IO - inputCore.InputManager.executeGesture (12:48:16.104) - winInputHook (17012):
    Input: kb(desktop):upArrow
    

    Though, if it's low frequency, maybe we'd better investigate the root cause and fix it rather than triggering a magnifier reinitialization.

  7. modified the milestones: 2026.3, 2027.1 on Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature/magnifierp2https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#prioritytriagedHas been triaged, issue is waiting for implementation.

    Type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions