Skip to content

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

@burnerlee

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions