def METHOD_NAME(path: str) -> Optional[Mapping[str, Any]]:
    try:
        contents = open(path, "r").read()
    except OSError:
        LOG.exception("Couldn't load config file, defaulting")
        return None
    try:
        data = json.loads(contents)
    except json.JSONDecodeError:
        LOG.exception("Couldn't parse config file, defaulting")
        return None
    if not isinstance(data, dict):
        LOG.exception("Bad data type for config file: not dict at top")
        return None
    return data