{"repo":"NousResearch/hermes-agent","public_id":"11233","display_label":"Error classifier crash on dict-typed message fields","summary":"A bug report and multiple fix attempts addressing an AttributeError that occurs when the error classifier encounters a dict-typed message field instead of a string. The fixes generally involve coercing or handling non-string message values in classify_api_error().","subsystem":null,"counts":{"members":9,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":7},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":12935},"resolution":{"state":"resolved","by":"pr-12935"},"freshness":{"state":"stale","last_verified_at":"2026-04-20T09:40:20+00:00","is_stale":true},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.2222222222222222},"fix_edges":[{"issue_number":11233,"pr_number":12935,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":11233,"title":"[Bug]: Error classifier crashes with `AttributeError` when API returns a dict-typed `message` field","url":null,"state":"closed"},{"kind":"pr","number":11264,"title":"fix(error-classifier): handle non-string message fields in error bodies","url":null,"state":"closed","close_reason":{"category":"silent_close","implication":"active"},"merged":false},{"kind":"pr","number":11276,"title":"fix 11233: wrap message field with str to prevent AttributeError","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#12935","number":12935}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":11308,"title":"fix(error_classifier): handle dict-typed message fields in classify_api_error()","url":null,"state":"closed","close_reason":{"category":"stale_abandoned","implication":"active"},"merged":false},{"kind":"pr","number":11322,"title":"fix(agent): handle dict-typed message in classify_api_error","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#12935","number":12935}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":11496,"title":"fix(error_classifier): handle dict-typed message fields without crashing","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#12935","number":12935}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":12489,"title":"fix: error classifier dict message crash (#11233)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#11233","number":11233},{"kind":"pr","value":"#12935","number":12935}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":12913,"title":"fix(agent): handle dict-typed message fields in error classifier (#11233)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"b869bf206","number":0},{"kind":"pr","value":"#12935","number":12935},{"kind":"pr","value":"#12935","number":12935},{"kind":"pr","value":"#11233","number":11233},{"kind":"pr","value":"#12935","number":12935}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":12935,"title":"fix(error_classifier): handle dict-typed message fields without crashing","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/error_classifier.py","scripts/release.py","tests/agent/test_error_classifier.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}