anomalyco/sst · error

Runtime not found: %v

Error message

Runtime not found: %v

What it means

Collection.Build looks up a runtime by name via c.Runtime(input.Runtime) and returns this error when no runtime is registered under that name. It means the runtime identifier on a function/resource doesn't match any runtime the CLI knows about (no built-in or plugin runtime registered for it).

Source

Thrown at pkg/runtime/runtime.go:138

		out = input.Bundle
		result = &BuildOutput{
			Handler: input.Handler,
			Errors:  []string{},
		}
	}

	if input.Bundle == "" {
		err := os.RemoveAll(out)
		if err != nil {
			return nil, err
		}
		err = os.MkdirAll(out, 0755)
		if err != nil {
			return nil, err
		}
		runtime, ok := c.Runtime(input.Runtime)
		if !ok {
			return nil, fmt.Errorf("Runtime not found: %v", input.Runtime)
		}
		result, err = runtime.Build(ctx, input)
		if err != nil {
			return nil, err
		}
	}

	result.Out = out
	if result.Sourcemaps == nil {
		result.Sourcemaps = []string{}
	}

	if len(input.CopyFiles) > 0 {
		for _, item := range input.CopyFiles {
			from, err := filepath.Abs(item.From)
			if err != nil {
				return nil, err
			}

View on GitHub (pinned to a0bd20f762)

Solutions

  1. Check the runtime string in sst.config.ts against the list of supported runtimes for your sst version
  2. Fix typos and casing (e.g. "nodejs20" not "node20" or "NodeJS20")
  3. If it's a custom runtime, ensure the plugin providing it is loaded before build
  4. Upgrade sst if the runtime was added in a newer release

Example fix

// before
runtime: "python3.13"
// after (supported version in this sst release)
runtime: "python3.12"
Defensive patterns

Strategy: validation

Validate before calling

// pin and verify the runtime string in sst.config.ts
const RUNTIMES = ["nodejs20","nodejs22","python3.12","go","rust"] as const
function isSupported(r: string): r is typeof RUNTIMES[number] {
	return (RUNTIMES as readonly string[]).includes(r)
}
if (!isSupported(fn.runtime)) throw new Error(`unsupported runtime: ${fn.runtime}`)

Type guard

function isSupportedRuntime(r: string): boolean {
	return /^(nodejs|python|go|rust|dotnet|bun)\S*$/.test(r) // then check against sst's supported list
}

Try / catch

try {
	await sst.deploy()
} catch (e) {
	if (String(e).includes("Runtime not found")) {
		// fix runtime name in sst.config.ts or load the runtime plugin
	}
}

Prevention

When it happens

Trigger: sst deploy builds a function whose input.Runtime string (from the SST config, e.g. "python3.12", "nodejs20", "rust", "go", or a custom runtime from a plugin) has no registered runtime in the Collection — misspelled name, unsupported version, or the plugin registering the runtime wasn't loaded.

Common situations: Typo in the runtime string in sst.config.ts; using a runtime version not supported by this sst version (e.g. newly released language version); custom runtime plugin not imported/initialized; case mismatch in the runtime name.

Related errors


AI-assisted analysis of anomalyco/sst@a0bd20f762 (2026-08-30). Data as JSON: /api/errors/4b63548bf6df70a6. Report an issue: GitHub.