Skip to content

Commit de75fec

Browse files
committed
fix: avoid KeyError in extract_team_id for malformed payloads
1 parent 7e9b08b commit de75fec

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

slack_bolt/request/internals.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,9 @@ def extract_team_id(payload: Dict[str, Any]) -> Optional[str]:
112112
if isinstance(payload.get("event"), dict):
113113
return extract_team_id(payload["event"])
114114
if isinstance(payload.get("user"), dict):
115-
return payload["user"]["team_id"]
115+
return payload["user"].get("team_id")
116116
if isinstance(payload.get("view"), dict):
117-
return payload["view"]["team_id"]
117+
return payload["view"].get("team_id")
118118
return None
119119

120120

tests/slack_bolt/request/test_internals.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1253,8 +1253,10 @@ def test_extraction_functions_invalid_dict_keys(self):
12531253
invalid_payloads = {
12541254
"event": {"event": "some_event_type"},
12551255
"user": {"user": "U12345"},
1256+
"user_missing_team_id": {"user": {"id": "U12345"}},
12561257
"team": {"team": "T12345"},
12571258
"view": {"view": "V12345"},
1259+
"view_missing_team_id": {"view": {"id": "V12345"}},
12581260
"message": {"message": "some text"},
12591261
"item": {"item": "item_id"},
12601262
"function_data": {"function_data": "fd_123"},

0 commit comments

Comments
 (0)