diff --git a/hikari/impl/entity_factory.py b/hikari/impl/entity_factory.py index d636906337..9ab5b7d3eb 100644 --- a/hikari/impl/entity_factory.py +++ b/hikari/impl/entity_factory.py @@ -1169,18 +1169,21 @@ def deserialize_guild_stage_channel( guild_id: undefined.UndefinedOr[snowflakes.Snowflake] = undefined.UNDEFINED, ) -> channel_models.GuildStageChannel: channel_fields = self._set_guild_channel_attrsibutes(payload, guild_id=guild_id) - permission_overwrites = { - snowflakes.Snowflake(overwrite["id"]): self.deserialize_permission_overwrite(overwrite) - for overwrite in payload["permission_overwrites"] - } - last_message_id = snowflakes.Snowflake(payload["last_message_id"]) if "last_message_id" in payload else None + + last_message_id: typing.Optional[snowflakes.Snowflake] = None + if (raw_last_message_id := payload.get("last_message_id")) is not None: + last_message_id = snowflakes.Snowflake(raw_last_message_id) + return channel_models.GuildStageChannel( app=self._app, id=channel_fields.id, name=channel_fields.name, type=channel_fields.type, guild_id=channel_fields.guild_id, - permission_overwrites=permission_overwrites, + permission_overwrites={ + snowflakes.Snowflake(overwrite["id"]): self.deserialize_permission_overwrite(overwrite) + for overwrite in payload["permission_overwrites"] + }, is_nsfw=payload.get("nsfw", False), parent_id=channel_fields.parent_id, region=payload["rtc_region"], diff --git a/tests/hikari/impl/test_entity_factory.py b/tests/hikari/impl/test_entity_factory.py index 9ad10d4920..b0b88a7562 100644 --- a/tests/hikari/impl/test_entity_factory.py +++ b/tests/hikari/impl/test_entity_factory.py @@ -2023,7 +2023,7 @@ def test_deserialize_guild_stage_channel( assert isinstance(voice_channel, channel_models.GuildStageChannel) def test_deserialize_guild_stage_channel_with_null_fields(self, entity_factory_impl): - voice_channel = entity_factory_impl.deserialize_guild_voice_channel( + voice_channel = entity_factory_impl.deserialize_guild_stage_channel( { "id": "123", "permission_overwrites": [],