def METHOD_NAME(client: APISession, user_id: str) -> dict:
    """Gets an oncall user by id."""
    try:
        user = client.rget(f"/users/{user_id}")
    except PDHTTPError as e:
        if e.response.status_code == HTTPStatus.NOT_FOUND.value:
            message = f"User with id {user_id} not found."
            log.error(message)
            raise PDNotFoundError(message) from e
        else:
            raise e
    except PDClientError as e:
        log.error(f"Non-transient network or client error: {e}")
        raise e
    return user