diff --git a/src/dpy_paginator/dpy_paginator.py b/src/dpy_paginator/dpy_paginator.py index 2ce0599..b1a7851 100644 --- a/src/dpy_paginator/dpy_paginator.py +++ b/src/dpy_paginator/dpy_paginator.py @@ -388,3 +388,16 @@ class ButtonPaginator(Generic[PageT_co], discord.ui.View): raise TypeError(f"expected Interaction or Messageable, got {obj.__class__.__name__}") return self.message + + async def on_timeout(self) -> None: + """delete the message on timeout when delete_message_after is set + + only the expected discord failures (already deleted, or no permission) are + swallowed; an unexpected error surfaces rather than being silently dropped. + """ + if not self.delete_message_after or self.message is None: + return + try: + await self.message.delete() + except (discord.NotFound, discord.Forbidden): + pass