{"record":{"id":"b2560ad32480923e","repo":"goreleaser/goreleaser","slug":"invalid-goriscv64-s","errorCode":null,"errorMessage":"invalid goriscv64: %s","messagePattern":"invalid goriscv64: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/builders/golang/targets.go","lineNumber":136,"sourceCode":"\t\t\treturn result, fmt.Errorf(\"invalid goarch: %s\", target.Goarch)\n\t\t}\n\t\tif target.Goamd64 != \"\" && !slices.Contains(validGoamd64, target.Goamd64) {\n\t\t\treturn result, fmt.Errorf(\"invalid goamd64: %s\", target.Goamd64)\n\t\t}\n\t\tif target.Go386 != \"\" && !slices.Contains(validGo386, target.Go386) {\n\t\t\treturn result, fmt.Errorf(\"invalid go386: %s\", target.Go386)\n\t\t}\n\t\tif target.Goarm64 != \"\" && !validGoarm64.MatchString(target.Goarm64) {\n\t\t\treturn result, fmt.Errorf(\"invalid goarm64: %s\", target.Goarm64)\n\t\t}\n\t\tif target.Gomips != \"\" && !slices.Contains(validGomips, target.Gomips) {\n\t\t\treturn result, fmt.Errorf(\"invalid gomips: %s\", target.Gomips)\n\t\t}\n\t\tif target.Goppc64 != \"\" && !slices.Contains(validGoppc64, target.Goppc64) {\n\t\t\treturn result, fmt.Errorf(\"invalid goppc64: %s\", target.Goppc64)\n\t\t}\n\t\tif target.Goriscv64 != \"\" && !slices.Contains(validGoriscv64, target.Goriscv64) {\n\t\t\treturn result, fmt.Errorf(\"invalid goriscv64: %s\", target.Goriscv64)\n\t\t}\n\t\tif !valid(target) {\n\t\t\tlog.WithField(\"target\", target).Debug(\"skipped invalid build\")\n\t\t\tcontinue\n\t\t}\n\t\tif ignored(build, target) {\n\t\t\tlog.WithField(\"target\", target).Debug(\"skipped ignored build\")\n\t\t\tcontinue\n\t\t}\n\t\twarnUnstable(target)\n\t\ttargets = append(targets, target)\n\t}\n\tif err := checkGoarmConflict(targets); err != nil {\n\t\treturn result, err\n\t}\n\tfor _, target := range targets {\n\t\tresult = append(result, target.String())\n\t}","sourceCodeStart":118,"sourceCodeEnd":154,"githubUrl":"https://github.com/goreleaser/goreleaser/blob/f5edd7395693c0c6b501dc722d445d2e86af854d/internal/builders/golang/targets.go#L118-L154","documentation":"GoReleaser validates every build target's GORISCV64 setting against the values the Go toolchain accepts: rva20u64, rva22u64, or rva23u64. If a target sets goriscv64 to anything else, listTargets aborts with this error.","triggerScenarios":"A build target with goarch riscv64 has a goriscv64 value not in {rva20u64, rva22u64, rva23u64}, e.g. 'rv64gc', 'generic', or a misspelling like 'rva20'.","commonSituations":"Using ISA names from other toolchains (e.g. 'rv64gc' from gcc) instead of Go's profiles, hand-editing .goreleaser.yaml with a typo, or adding riscv64 targets after reading outdated documentation (older Go only had rva20u64/rva22u64).","solutions":["Set goriscv64 in the target to one of rva20u64, rva22u64, or rva23u64","Remove the goriscv64 field entirely to use the Go toolchain default","Verify your Go version supports the chosen profile (rva23u64 requires Go 1.25+)"],"exampleFix":"// before (.goreleaser.yaml)\ntargets:\n  - riscv64_rv64gc\n// after\ntargets:\n  - riscv64_rva20u64","handlingStrategy":"validation","validationCode":"valid := []string{\"rva20u64\", \"rva22u64\", \"rva23u64\"}\nif v, ok := target[\"goriscv64\"]; ok && v != \"\" && !slices.Contains(valid, v) {\n\treturn fmt.Errorf(\"invalid goriscv64 %q; must be one of %v\", v, valid)\n}","typeGuard":"func validGoriscv64(v string) bool {\n\treturn v == \"\" || slices.Contains([]string{\"rva20u64\", \"rva22u64\", \"rva23u64\"}, v)\n}","tryCatchPattern":null,"preventionTips":["Use Go's RISC-V profile names (rva20u64 etc.), not gcc ISA strings like rv64gc","Run 'goreleaser check' in CI","Check your Go toolchain version supports the chosen profile"],"tags":["goreleaser","configuration","validation","go-toolchain"],"backgroundTag":"invalid-build-target-option","analyzedSha":"f5edd7395693c0c6b501dc722d445d2e86af854d","analyzedAt":"2026-09-05T09:57:18.807Z","contentChangedAt":"2026-09-05T09:57:18.807Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}