{"record":{"id":"4b63548bf6df70a6","repo":"anomalyco/sst","slug":"runtime-not-found-v","errorCode":null,"errorMessage":"Runtime not found: %v","messagePattern":"Runtime not found: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/runtime/runtime.go","lineNumber":138,"sourceCode":"\t\tout = input.Bundle\n\t\tresult = &BuildOutput{\n\t\t\tHandler: input.Handler,\n\t\t\tErrors:  []string{},\n\t\t}\n\t}\n\n\tif input.Bundle == \"\" {\n\t\terr := os.RemoveAll(out)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\terr = os.MkdirAll(out, 0755)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\truntime, ok := c.Runtime(input.Runtime)\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"Runtime not found: %v\", input.Runtime)\n\t\t}\n\t\tresult, err = runtime.Build(ctx, input)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tresult.Out = out\n\tif result.Sourcemaps == nil {\n\t\tresult.Sourcemaps = []string{}\n\t}\n\n\tif len(input.CopyFiles) > 0 {\n\t\tfor _, item := range input.CopyFiles {\n\t\t\tfrom, err := filepath.Abs(item.From)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}","sourceCodeStart":120,"sourceCodeEnd":156,"githubUrl":"https://github.com/anomalyco/sst/blob/a0bd20f762883e72a35caccb4896c42ce5b3f707/pkg/runtime/runtime.go#L120-L156","documentation":"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).","triggerScenarios":"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.","commonSituations":"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.","solutions":["Check the runtime string in sst.config.ts against the list of supported runtimes for your sst version","Fix typos and casing (e.g. \"nodejs20\" not \"node20\" or \"NodeJS20\")","If it's a custom runtime, ensure the plugin providing it is loaded before build","Upgrade sst if the runtime was added in a newer release"],"exampleFix":"// before\nruntime: \"python3.13\"\n// after (supported version in this sst release)\nruntime: \"python3.12\"","handlingStrategy":"validation","validationCode":"// pin and verify the runtime string in sst.config.ts\nconst RUNTIMES = [\"nodejs20\",\"nodejs22\",\"python3.12\",\"go\",\"rust\"] as const\nfunction isSupported(r: string): r is typeof RUNTIMES[number] {\n\treturn (RUNTIMES as readonly string[]).includes(r)\n}\nif (!isSupported(fn.runtime)) throw new Error(`unsupported runtime: ${fn.runtime}`)","typeGuard":"function isSupportedRuntime(r: string): boolean {\n\treturn /^(nodejs|python|go|rust|dotnet|bun)\\S*$/.test(r) // then check against sst's supported list\n}","tryCatchPattern":"try {\n\tawait sst.deploy()\n} catch (e) {\n\tif (String(e).includes(\"Runtime not found\")) {\n\t\t// fix runtime name in sst.config.ts or load the runtime plugin\n\t}\n}","preventionTips":["Copy the runtime identifier from sst docs rather than typing it from memory","Pin sst version and confirm the runtime is supported in it","Load any custom runtime plugin before deploy","Keep casing/format exact (e.g. \"nodejs20\")"],"tags":["go","runtime","config","build"],"backgroundTag":"runtime-not-found","analyzedSha":"a0bd20f762883e72a35caccb4896c42ce5b3f707","analyzedAt":"2026-08-30T11:26:00.383Z","schemaVersion":2},"datasetVersion":"2026-08-30T13:17:10.514Z"}