go-client icon indicating copy to clipboard operation
go-client copied to clipboard

failed to create user

Open alonlong opened this issue 5 years ago • 7 comments

Hi, This is my golang code:

uuid := id2uuid(id) fmt.Println(uuid)

userRequest := fusionauth.UserRequest{
	SendSetPasswordEmail: false,
	SkipVerification:     true,
	User: fusionauth.User{
		SecureIdentity: fusionauth.SecureIdentity{
			Password:         "123456",
			EncryptionScheme: "salted-md5",
		},
		Email: "[email protected]",
	},
}
userReply, _, err := auth.CreateUser(uuid, userRequest)
if err != nil {
	panic(err)
}
fmt.Printf("%v\n", struct2JSON(userReply))

when I run this code, the result: 50166975-0100-0000-0516-796758492463 {"statusCode":400,"user":{}}

what's the problem?

alonlong avatar Jan 26 '20 09:01 alonlong

@matthew-altman it looks like we are not de-serializing into the errors object on a non 2xx response.

Can you take a look?

@alonlong if you recreate using postman , insomnia or some rest client the JSON body response on a 400 will tell you what the validation error is that is causing the request to fail.

robotdan avatar Jan 26 '20 15:01 robotdan

@alonlong It looks like you're throwing away the Errors, the second return value, from the auth.CreateUser() call. Can you please store that value and reply with the results of that? Thanks!

matthew-altman avatar Jan 27 '20 15:01 matthew-altman

@alonlong Were you able to resolve this issue? Or do you have any additional error messages for us?

matthew-altman avatar Feb 26 '20 16:02 matthew-altman

Pretty sure this is related to the issue I'm having currently.

A request to CreateUser returns zero validation errors but err is equal to EOF. This is also occurs when you have a user who hasn't set a password yet and they try and login, no validation errors will be returned but err will be equal to EOF. It'll also occur when a user tries to login who doesn't have an account instead of just returning a 401.

Any current work arounds? Happy to post any additional findings too.

michaeldabbott avatar May 12 '20 15:05 michaeldabbott

@abbottm-go if you try to make the same request using a REST client such as insomnia or postman what is the error and status code?

If we can identify the actual error - then we should be able to recreate the scenario and symptom to resolve the core issue.

Thanks!

robotdan avatar May 12 '20 16:05 robotdan

@robotdan

The status code is 200 when err is equal to EOF on the login function. That's using insomnia. This occurs with both the Login and CreateUser functions.

using go 1.14.2 :)

michaeldabbott avatar May 12 '20 18:05 michaeldabbott

@robotdan ` response, error, err := a.fusionAuth.CreateUser("", request)

if error != nil || err != nil {
	return nil, err
}
return response, nil

`

the err object is the one defaulting to EOF & errors object is just an empty map

michaeldabbott avatar May 12 '20 18:05 michaeldabbott