AlexxIT/go2rtc · error
${tokenResponse.Msg}
Error message
${tokenResponse.Msg} What it means
Tuya Cloud API initToken guard: the /v1.0/token request transported fine, but TokenResponse reports Success=false and its server Msg becomes the error. Token issuance was refused — invalid signature (wrong client_secret), bad clientId, or rate limiting; no accessToken can be stored.
Solutions
- Verify client_id/client_secret and sign computation (tuya signing is strict)
- Check the appended Msg for the exact cloud reason
- Retry respecting rate limits after fixing credentials
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at pkg/tuya/cloud_api.go:185 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of AlexxIT/go2rtc@c245815e75 (2026-09-07).
Data as JSON: /api/errors/6b8cdd64c6424ce0.
Report an issue: GitHub.
Appendix: source
Thrown at pkg/tuya/cloud_api.go:185
url := fmt.Sprintf("https://%s/v1.0/token?grant_type=1", c.baseUrl)
c.accessToken = ""
c.refreshToken = ""
body, err := c.request("GET", url, nil)
if err != nil {
return err
}
var tokenResponse TokenResponse
err = json.Unmarshal(body, &tokenResponse)
if err != nil {
return err
}
if !tokenResponse.Success {
return errors.New(tokenResponse.Msg)
}
c.accessToken = tokenResponse.Result.AccessToken
c.refreshToken = tokenResponse.Result.RefreshToken
c.expireTime = tokenResponse.Timestamp + tokenResponse.Result.ExpireTime
c.refreshingToken = false
return nil
}
func (c *TuyaCloudApiClient) loadWebrtcConfig() (*WebRTCConfig, error) {
url := fmt.Sprintf("https://%s/v1.0/users/%s/devices/%s/webrtc-configs", c.baseUrl, c.uid, c.deviceId)
body, err := c.request("GET", url, nil)
if err != nil {
return nil, err
}
View on GitHub (pinned to c245815e75)