I couldn't see I was checking session instead of err which inevitably would run log.Fatal
session, err := client.NewSession()
if session != nil {
log.Fatalf("Unable to create a session %v", err)
}
My code should have actually check err instead like this:
session, err := client.NewSession()
if err != nil {
log.Fatalf("Unable to create a session %v", err)
}
The credit for this answer goes to @Mr_Pink