Why This Happens
Go treats unused imports as a compile error, not a warning. This keeps code clean but can be annoying during development. You can use the blank identifier _ to import a package purely for its init() side effects.
The Problem
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("hello")
// os is never used
}The Fix
package main
import "fmt"
func main() {
fmt.Println("hello")
}Step-by-Step Fix
- 1
Identify the unused import
The compiler error names the exact package that is imported but not used.
- 2
Decide if it is needed
If the import is not needed, remove it. If it is needed for side effects, prefix with a blank identifier.
- 3
Use goimports or IDE tooling
Run goimports to automatically add and remove imports as needed.
Got the actual stack trace?
Paste it into our free AI explainer to get the cause and the fix for your specific case — no signup, nothing to install.
Explain my errorBugsly catches this automatically
Bugsly's AI analyzes this error pattern in real-time, explains what went wrong in plain English, and suggests the exact fix — before your users even report it.
Try Bugsly free