diff -r e2a16e19eb8b -r 356507eb8db6 status.go --- a/status.go Thu Apr 13 12:54:05 2017 +0200 +++ b/status.go Thu Apr 13 13:44:09 2017 +0200 @@ -48,16 +48,20 @@ return fmt.Errorf("status/%s API query: %s", subquery, err.Error()) } + // Check for error reply + var errorResult Error + if err := json.Unmarshal([]byte(r.Body), &errorResult); err == nil { + // The empty object is not an error + if errorResult.Text != "" { + return fmt.Errorf("%s", errorResult.Text) + } + } + + // Not an error reply; let's unmarshal the data err = json.Unmarshal([]byte(r.Body), &data) if err != nil { - var errorRes Error - err2 := json.Unmarshal([]byte(r.Body), &errorRes) - if err2 == nil { - return fmt.Errorf("%s", errorRes.Text) - } return fmt.Errorf("status/%s API: %s", subquery, err.Error()) } - return nil } @@ -131,10 +135,13 @@ // Check for error reply var errorResult Error if err := json.Unmarshal([]byte(r.Body), &errorResult); err == nil { - return fmt.Errorf("%s", errorResult.Text) + // The empty object is not an error + if errorResult.Text != "" { + return fmt.Errorf("%s", errorResult.Text) + } } - // Not an error reply; let's unmarshall the data + // Not an error reply; let's unmarshal the data err = json.Unmarshal([]byte(r.Body), &data) if err != nil { return fmt.Errorf("status/%s API: %s", subquery, err.Error())