tailscale/tailscale · error

Not implemented

Error message

Not implemented

What it means

This file is the GOOS=js (WebAssembly) build variant of the ssh helpers: when the tailscale CLI is compiled for the browser/WASM environment, there is no local ssh binary to find or exec, so findSSH and execSSH are stubs that always return 'Not implemented'. Hitting it means the ssh subcommand was invoked in a build where spawning ssh is structurally impossible.

Source

Thrown at cmd/tailscale/cli/ssh_exec_js.go:11

// Copyright (c) Tailscale Inc & contributors
// SPDX-License-Identifier: BSD-3-Clause

package cli

import (
	"errors"
)

func findSSH() (string, error) {
	return "", errors.New("Not implemented")
}

func execSSH(ssh string, argv []string) error {
	return errors.New("Not implemented")
}

View on GitHub (pinned to cfe32b8be6)

Solutions

  1. Build/run the CLI for the host platform instead (GOOS unset, e.g. linux/darwin) — the real findSSH/execSSH live in the non-js files
  2. In WASM embeddings, hide or disable the ssh subcommand rather than invoking it
  3. Use a regular ssh client from the user's machine against the MagicDNS name

Example fix

// before
$ GOOS=js GOARCH=wasm go build ./cmd/tailscale   # then run 'tailscale ssh ...'
Not implemented

// after
$ go build ./cmd/tailscale   # native build
$ ./tailscale ssh admin@server
Defensive patterns

Strategy: fallback

Validate before calling

if runtime.GOOS == "js" {
	return errors.New("ssh subcommand unsupported in WASM builds")
}

Try / catch

if _, err := findSSH(); err != nil {
	if err.Error() == "Not implemented" {
		// js/wasm build: fall back to a remote/web terminal or native binary
		return errUnsupportedPlatform
	}
	return err
}

Prevention

When it happens

Trigger: Compiling cmd/tailscale with GOOS=js GOARCH=wasm (e.g. the tailscale.com/wasm playground) and running the ssh subcommand — findSSH() is called during ssh setup and returns this stub error.

Common situations: Browser-based Tailscale demos/playgrounds; embedding the CLI in a WASM shell and calling the ssh entry point; accidental cross-compilation to js/wasm for a tool that was meant to run natively.

Related errors


AI-assisted analysis of tailscale/tailscale@cfe32b8be6 (2026-08-15). Data as JSON: /api/errors/992ad42d670fc9b8. Report an issue: GitHub.