Golang Bcrypt哈希密码不匹配

so I am storing a password hash in mongodb in example one below. If I add it then retrieve in the same function it says the password and hash match, however if I try to retrieve it in another function, both values are still the same, except the hashed password does not match the supplied password. Example below.

c := session.DB("users").C("accounts")

err = c.Find(bson.M{"username": user.Username}).One(&userInfo)
if err != nil {
    return err
}

log.Println(user.Password+Pepper)
log.Println(userInfo)

err = bcrypt.CompareHashAndPassword(userInfo.PWHash, []byte(user.Password+Pepper))
if err != nil {
    return err
}
return nil

The example above the password does not match the hash.

orig := user.Password
user.PWHash, err = bcrypt.GenerateFromPassword([]byte(user.Password+Pepper), bcrypt.DefaultCost)

session, err := mgo.Dial("mongodb")
if err != nil {
    return err
}

defer session.Close()

if InTesting {
    err = session.DB("users").DropDatabase()
    if err != nil {
        return err
    }
}

c := session.DB("users").C("accounts")
err = c.Insert(user)
if err != nil {
    return err
}

var userInfo models.UserAuth
err = c.Find(bson.M{"username": user.Username}).One(&userInfo)
if err != nil {
    return err
}

log.Println(orig + Pepper)
log.Println(userInfo)

err = bcrypt.CompareHashAndPassword(userInfo.PWHash, []byte(orig+Pepper))
if err != nil {
    log.Println(err)
} else {
    log.Println("matched!")
}

In the example above the passwords do match. Both examples the comments of the 2 logs contain identical information. I have no ideas at all. Any help is greatly appreciated :)