Skip to content

VS Code open action fails with missing external.openInApp procedure #5903

Closed as duplicate

Description

@sebastianserrano

Where did this happen?

Desktop app (macOS)

Version

1.16.1 (1.16.1)

What happened?

Clicking the VS Code open control in the workspace file view does not open the workspace in VS Code. Instead, the desktop app displays an error toast:

Failed to open: No procedure found on path "external.openInApp"

Repeated clicks produce multiple identical error toasts.

Image

Expected behavior: the current workspace opens in VS Code without an error.

Steps to reproduce

  1. Open a workspace in the Superset desktop app on macOS.
  2. Open the Files view.
  3. Click the VS Code open control in the upper-right corner (showing the VS Code icon and workspace path).
  4. Observe the error toast.
  5. Click the control again and observe that another identical toast is added.

Logs, screenshots, or recordings

The supplied screenshot shows three stacked error toasts, each reading: Failed to open: No procedure found on path "external.openInApp".

Activity

  1. github-actions commented on Jul 23, 2026

    @github-actions
    Contributor

    Triage findings

    I investigated this against main and was unable to reproduce a live failure, but I did pin down the exact mechanism behind the reported error. Sharing in case it helps confirm whether this is already fixed on the latest build.

    What produces the error

    No procedure found on path "external.openInApp" is thrown by tRPC when a call to external.openInApp is routed to a router that doesn't define that procedure. There are two distinct tRPC routers in play:

    • The desktop main-process router (createAppRouter) mounts external: createExternalRouter(), which does define openInApp.
    • The host-service router (@superset/host-service, used by workspaceTrpc) has no external sub-router at all.

    I verified empirically that invoking external.openInApp on the host-service router reproduces the reported message exactly:

    No procedure found on path "external,openInApp"
    

    (the renderer link formats the same error with a dot: external.openInApp).

    Why it doesn't reproduce on current main

    The file-view "Open in editor" control in the upper-right (V2WorkspaceOpenInButton → V2OpenInMenuButton) calls electronTrpc.external.openInApp, which is bound to the main process (electronTrpc.Provider client={electronReactClient}) — where openInApp exists — and it's gated to local workspaces.

    The error is consistent with a tRPC React context-shadowing misroute: electronTrpc uses React's default tRPC context, and if another createTRPCReact client bound to the host-service router provided over that same default context, electronTrpc's hooks would resolve against the host-service router (which lacks external), yielding this exact error.

    On current main that can't happen: the three secondary clients that share the default context risk — chatServiceTrpc, chatRuntimeServiceTrpc, and workspaceTrpc — each now pass a dedicated React context, which packages/workspace-client/src/workspace-trpc.ts documents explicitly:

    Dedicated context — the library default is shared across all createTRPCReact clients, letting this Provider shadow the desktop's electronTrpc hooks.

    Conclusion

    This looks like a Provider/context-shadowing bug that is already resolved relative to the reported 1.16.1, which is why I couldn't get a test to fail against main. Could you confirm whether the error still occurs on the latest build? If it does, the shape of the fix would be to ensure whichever client the "Open in" control resolves to is the main-process (electronTrpc) client — or to add an external router to the host-service if opening is meant to happen host-side for remote workspaces.

    (Automated triage investigation — no code changes made.)

  2. Kitenite commented on Jul 28, 2026

    @Kitenite
    Member

    Duplicate of #5893, same external.openInApp regression. We merged both into one ticket in our tracker (SUPER-1598).

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions