Using the connection.UserId.Run(<msg>, "") function and sending an iptag update to tag an ip with a tag it already has registered, an empty error message is returned.
PanGo 0.8.0
// IP '192.0.2.1' has tags: 'tag1' already registered
msg := &userid.Message{
TagIps: []userid.TagIps{
{
Ip: "192.0.2.1",
Tags: []string{"tag1","tag2"},
}
}
}
if err := connection.UserId.Run(msg, ""); err != nil {
log.Printf(err)
}
// Produces an empty error with no message
// 'tag2' is successfully registered still
// Output: ""
// See picture for debug look at the err.
Empty Message inside non-nil error:

An actual nil error is returned if the tag additions requested are all new tags for the IP.