Environment Troubleshooting Skill
This skill provides systematic solutions for resolving common development environment startup failures, focusing on Go and Node.js/NPM ecosystems.
1. Go Version Mismatch
Symptoms:
- •Error:
compile: version "go1.X" does not match go tool version "go1.Y" - •Error:
go: cannot run *go1.X* (installed in ...) please ensure that go1.X is in your PATH
Diagnosis:
The version specified in go.mod differs from the local go toolchain, or the toolchain auto-download mechanism is failing. Often caused by GOROOT environment variable pointing to an older system installation while go binary is newer.
Solutions:
- •Force Local Toolchain (Recommended for dev):
Tell Go to use the locally installed version regardless of
go.mod.bashgo env -w GOTOOLCHAIN=local go clean -cache
- •Fix GOROOT Mismatch (Critical if Solution 1 fails):
If
go versionshows X butgo env GOROOTshows Y, explicit export is needed.bash# Check current GOROOT go env GOROOT # Find correct toolchain path (example for Mac) ls -d ~/go/pkg/mod/golang.org/toolchain@* # Set GOROOT (replace path with actual one found above) export GOROOT=/Users/<user>/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.25.6.darwin-amd64 export PATH=$GOROOT/bin:$PATH
- •Match go.mod:
Update
go.modto match your local version (if permissible).bashgo mod edit -go=1.25.6 # Replace with your `go version` go mod tidy
2. NPM Dependency Conflicts
Symptoms:
- •Error:
ERESOLVE unable to resolve dependency tree - •Error:
Conflicting peer dependency: ...
Diagnosis: Strict peer dependency checks in npm v7+ are failing because libraries require different versions of the same package (e.g., React or Ant Design).
Solutions:
- •Legacy Peer Deps (Quick Fix):
Bypass strict peer dependency checks. Safe for dev, but check for runtime errors.
bash
npm install --legacy-peer-deps
- •Force Install (Aggressive):
bash
npm install --force
- •Resolution Override (Best Practice):
Add a
overrides(npm) orresolutions(yarn) section topackage.jsonto force a specific version.json"overrides": { "antd": "^5.0.0" }
3. Port Conflicts
Symptoms:
- •Error:
listen tcp :8090: bind: address already in use
Solutions:
- •Find and Kill:
bash
lsof -i :8090 kill -9 <PID>
- •Change Port:
Update
config.yamlor.envto use a free port.
Workflow
- •Analyze Error Log: Identify keywords (
compile version,ERESOLVE,bind). - •Apply Fix: Use the corresponding solution above.
- •Clean & Rebuild: Always run
go clean -cacheorrm -rf node_modulesafter major env changes. - •Verify: Start the service and check health endpoints.