Skip to content

NVDA exits during startup when the portable copy is stored in a long path #20840

Open

Description

@cary-rowen

Brief summary

NVDA exits during startup when its portable copy is stored under a sufficiently long directory path. The failure occurs while loading the WinRT Bluetooth extension module.

Steps to reproduce

  1. Quit all running NVDA instances.

  2. Under D:\NVDA_LONG_TEST, create a directory whose name contains exactly 180 lowercase n characters.

  3. Copy the NVDA portable directory into it.

  4. Set portableRoot to the copied NVDA directory and verify the path lengths:

    $portableRoot = 'D:\NVDA_LONG_TEST\' + ('n' * 180) + '\NVDA2026.3beta1'
    
    $portableRoot.Length
    (Join-Path $portableRoot 'winrt._winrt_windows_devices_bluetooth.pyd').Length

    The output should be:

    214
    257
    
  5. Start NVDA with add-ons disabled and debug logging enabled:

    & (Join-Path $portableRoot 'nvda.exe') `
        --disable-addons `
        --debug-logging `
        --log-file (Join-Path $env:TEMP 'nvda-long-path.log')

Actual behavior

NVDA exits with code 1 before the main window and system tray icon become available. No speech is produced.

The log contains an error similar to:

ImportError: DLL load failed while importing _winrt_windows_devices_bluetooth:
The filename or extension is too long

The failing module is:

winrt._winrt_windows_devices_bluetooth.pyd

Expected behavior

NVDA should complete startup. Failure to load Bluetooth support should not terminate the entire NVDA process.

NVDA logs, crash dumps and other attachments

No response

NVDA type

portable copy, installer/launcher copy

NVDA version

NVDA 2026.1 and NVDA 2026.3beta1.

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

None

Windows version

Windows 10 Pro 22H2, build 19045, 64-bit.

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

Windows PowerShell. No other application is required.

Other information about your system

The portable copy is stored on the local D: drive.

Does the issue still occur after restarting your computer?

I have restarted my computer and the issue still occurs

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

I have restarted NVDA with add-ons disabled and the issue still occurs

Does the issue still occur after you run the System Accessibility Repair Tool (COM Registration Fixing Tool in older versions) in NVDA's tools menu?

I have run the System Accessibility Repair Tool and the issue still occurs

Activity

  1. added theissue type on Sep 12, 2026
  2. seanbudd commented on Sep 18, 2026

    @seanbudd
    Member

    I think this should be temporarily fixed in 2026.3 when #20832 lands, however @bramd will need to fix this before #19122 lands. This might need to be reported upstream as we might not own the code that's causing the issue?

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

    @cary-rowen
    ContributorAuthor

    Hi @seanbudd
    There is also #20841; if #20841 is not fixed, it may still prevent NVDA starting.

  6. bramd commented on Sep 18, 2026

    @bramd
    Contributor

    @cary-rowen Under NVDA Version you mention 2026.1 and 2026.3 beta1. However, under "Other versions tested" you don't mention 2026.1. The module is not there in 2026.1, so I understand this specific issue can't occur, but if NVDA 2026.1 is also not loading in a very long path it's at least not a user facing regression. Given the issue you reported in #20841 I suspect NVDA 2026.1 will also not start in this case?

  7. cary-rowen commented on Sep 18, 2026

    @cary-rowen
    ContributorAuthor

    Hi @bramd

    Given the issue you reported in #20841 I suspect NVDA 2026.1 will also not start in this case?

    Yes, that's right; there's still a lot of work to be done on NVDA's support for long paths.

  8. bramd commented on Sep 27, 2026

    @bramd
    Contributor

    Thanks for the clarification @cary-rowen. In that case, I'd say this is not a regression and unless we make long path support suddenly a feature for this release it is not release blocking. Agreed @seanbudd?

  9. modified the milestones: 2026.3, 2027.1 on Sep 28, 2026
  10. seanbudd commented on Sep 28, 2026

    @seanbudd
    Member

    Yes thanks for investigating @bramd and @cary-rowen , let's try and solve them both in 2027.1 if we can

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

    bugp3https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priorityrelease/blockingthis issue blocks the milestone releasetriagedHas been triaged, issue is waiting for implementation.

    Type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions