It seems a portion of your code checks for a member that doesn't always exist.
In jshint.py it sometimes checks for error.id, but id doesn't always exist. I haven't root caused the issue, but instead patched the symptom for now.
if(settings.get("warnings") or (hasattr(error, 'id') and re.compile("^error ").match(error.id))):
self.panel.insert(edit, self.panel.size(), error.id + ' : ' + error.reason + ' ,'.join(details) + ' \n')
if(hasattr(error, 'id') and re.compile("^warning ").match(error.id)):
count_warnings = count_warnings + 1
This really is a fantastic plugin. Keep up the great work.