Skip to content

Keyerror on logging errors when found in making a call to api #313

Description

@burnerlee

When an error is received while making a request to the backend, we catch it, and if it is present in the EVALAI_ERROR_CODES, we log it using the lines:

if response.status_code in EVALAI_ERROR_CODES:
    validate_token(response.json())
    echo(
        style(
            "\nError: {}\n"
            "\nUse `evalai challenges` to fetch the active challenges.\n"
            "\nUse `evalai challenge CHALLENGE phases` to fetch the "
            "active phases.\n".format(response.json()["error"]),
            fg="red",
            bold=True,
        )
    )

But response.json() does not have the key error in cases. For e.g., I made a request using an expired token and got an error. So when I logged the entire json.response(), it was something like

{'detail': 'Given token not valid for any token type', 'code': 'token_not_valid', 'messages': [{'token_class': 'RefreshToken', 'token_type': 'refresh', 'message': 'Token is invalid or expired'}]}

This does not contains a key named error

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions