Disabled manually installed add-on with unregistered marketplace slug crashes the details view

Bug Summary

In Local 10.1.1, clicking the Installed Add-ons card for a globally disabled, manually installed add-on throws an uncaught error when the add-on’s slug is not registered in the Local marketplace.

The alert reports:

TypeError: Cannot read properties of undefined (reading 'toString')

The marketplace lookup for the slug returns addon: null, but the installed-add-on details view appears to assume a marketplace record exists.

Steps to reproduce

  1. Install a valid Local add-on TGZ from disk whose package slug is not registered in the Local marketplace.
  2. Confirm the add-on appears under Add-ons → Installed and works while enabled.
  3. Turn the add-on Off from the Installed Add-ons screen.
  4. Quit and reopen Local.
  5. Return to Add-ons → Installed.
  6. Click the disabled add-on’s card to view its project information.
  7. Local displays the uncaught toString error instead of opening—or gracefully declining to open—the details view.

Actual result

Local displays an error alert and the details view cannot be used.

Expected result

Local should handle a missing marketplace record without an uncaught exception. For example, it could show packaged metadata, display a simple “details unavailable” state, or make the disabled card non-interactive. The Installed Add-ons screen should remain usable whether the add-on is enabled or disabled.

Comparison

A marketplace-registered add-on such as TablePlus can be opened while disabled. A similar pre-marketplace TablePlus behavior was reported in a 2020 TablePlus discussion and attributed to the add-on not yet being registered.

That historical workaround was marketplace approval, but Local 10.1.1 still does not gracefully handle the valid pre-approval/manual-install state.

Environment Info

  • Operating system: macOS 26.4.1 (build 25E253)
  • Local version: 10.1.1
  • Site software: Not applicable; the failure occurs in Local’s global Installed Add-ons UI before selecting or starting a site.
  • Add-on installation: Valid TGZ installed with Install from disk
  • Add-on state: Installed globally and turned Off

Supporting info

I can provide Local logs and screenshots of the Installed Add-ons card and error alert if needed.

Thank you for bringing this to our attention @mdavoli!

I’ve been going through the replication steps to test this, and so far I can only replicate the error pop up when trying to select Instant Reload. It won’t happen for add-ons I have installed whether they are from the Library or not, or disabled or not. It always happens for me with Instant Reload however.

I’m just curious on the behavior you’ve noted and if it’s happening only for one specific add-on, or if you’ve been able to replicate it with any others?

@Nick-B We are actually working on a new plugin internally. I just made it public as we are open sourcing it so you can see it here: GitHub - amsive/local-media-proxy: A LocalWP Addon for proxy local media from live environments · GitHub

We discovered this ourselves during testing with our plugin.

If it’s something on our end that wouldn’t cause that let us know, happy to fix on our end.

Once last thing, make sure when testing you fully restart local after disabling but leave the add-on installed. That’s what triggers the error.

Hey @mdavoli! I checked with our devs on this, and it’s definitely a bug we’ll need to dig into from our side. I’ve created a ticket for our team to take a deeper look, so we’ll keep you posted with any updates here. Thank you again for raising this!