From 0c93893627e4f0906f9de4c9158514bf2fc06016 Mon Sep 17 00:00:00 2001 From: bytedream Date: Sun, 19 Jun 2022 13:38:41 +0200 Subject: [PATCH] Fix error handling caused panic (again) --- crunchyroll.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crunchyroll.go b/crunchyroll.go index 0544c70..8b4fad8 100644 --- a/crunchyroll.go +++ b/crunchyroll.go @@ -329,13 +329,15 @@ func request(req *http.Request, client *http.Client) (*http.Response, error) { } } } else if _, ok := errMap["code"]; ok { - if errContext, ok := errMap["context"]; ok { - errField := errContext.([]any)[0].(map[string]any) + if errContext, ok := errMap["context"].([]any); ok && len(errContext) > 0 { + errField := errContext[0].(map[string]any) var code string if code, ok = errField["message"].(string); !ok { code = errField["code"].(string) } return nil, &RequestError{Response: resp, Message: fmt.Sprintf("%s - %s", code, errField["field"].(string))} + } else if errMessage, ok := errMap["message"].(string); ok { + return nil, &RequestError{Response: resp, Message: errMessage} } } }