Skip to content

test: reproduce #5850 — "No procedure found on path external.openInApp" - #5854

Draft
github-actions[bot] wants to merge 1 commit into
mainfrom
triage/issue-5850-29868847665
Draft

test: reproduce #5850 — "No procedure found on path external.openInApp"#5854
github-actions[bot] wants to merge 1 commit into
mainfrom
triage/issue-5850-29868847665

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

What the bug is

Clicking Open in App (sidebar button or CMD+O) shows a toast:

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

instead of opening the worktree in the chosen editor/IDE (IntelliJ IDEA in the report).

Root-cause diagnosis

The desktop has two tRPC backends for a workspace:

  1. Electron main (external router with openInApp/openInFinder/openFileInEditor), reached over the local IPC transport (trpc-electron).
  2. host-service (@superset/host-service appRouter), reached over HTTP at /trpc/* (served by @hono/trpc-serverfetchRequestHandler). This router has no external namespace at all (see packages/host-service/src/trpc/router/router.ts).

The two transports emit different not-found messages for a missing path:

Transport Resolver Message
Electron IPC callProcedure No "mutation"-procedure on path "…"
HTTP resolveResponse No procedure found on path "…"

The reporter's text is the HTTP variant — proof that the external.openInApp call reached the host-service router (which doesn't implement it) rather than the local Electron router that does.

What the test does / how it proves the bug

packages/host-service/test/integration/external-open-in-app.integration.test.ts drives the real host-service appRouter through fetchRequestHandler (the same adapter the host-service serves with):

  • external.openInApp → HTTP 404, code: NOT_FOUND, message exactly No procedure found on path "external.openInApp" — reproducing the reported error at its source.
  • Positive control: health.check resolves normally, confirming the router is served correctly and the failure is specific to the missing external namespace.

Both tests pass (bun test in packages/host-service).

Why this is reproduction-only (draft)

The exact error and its source are reproduced deterministically. However, I could not tie it to a live UI code path on main: every current "Open in App" / CMD+O caller routes the mutation to the local Electron client (which implements external.openInApp), and remote/host workspaces are guarded (V2WorkspaceOpenInButton renders only for local workspaces, useOpenInExternalEditor and the command-palette openIn provider both short-circuit non-local hosts). So the reporter's build/state most likely routed the call to the host-service in a way current source no longer does.

This test therefore (a) reproduces and localizes the exact error, and (b) acts as a regression guard documenting that open-in must never be routed to the host-service HTTP router.

Maintainers: please confirm the installed build and whether the affected workspace was local or hosted on another machine, so the fix can target the correct routing guard.

Refs #5850


Summary by cubic

Added an integration test in packages/host-service/test/integration/external-open-in-app.integration.test.ts that reproduces #5850 by calling external.openInApp against the host-service HTTP tRPC endpoint (fetchRequestHandler), returning the exact error: No procedure found on path "external.openInApp". This confirms the failure originates from the host-service router (not the Electron external router) and documents the expected 404, serving as a regression guard.

Written for commit 7029301. Summary will update on new commits.

Review in cubic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants