Slack · api · fg-0367

views.open fails with expired_trigger_id when the modal opens after a database call

expired_trigger_id from views.open

Verified 2026-10-15 · Confirmed by 0 builders · Trust 50/100

Cause

A trigger_id expires three seconds after Slack sends it. Any lookup, cold start or queue hop before views.open can push past that window.

Fix

Call views.open first with a loading view, then fill it in with views.update once the slow data arrives.

Apply

res = client.views_open(trigger_id=body["trigger_id"], view=loading_view)
data = slow_lookup()
client.views_update(view_id=res["view"]["id"], view=build_view(data))

Affects: Slack modals opened from shortcuts, slash commands and block actions, as of 2026-10

Sources

Have your agent know this before it fails

claude mcp add --transport http footgun https://getfootgun.com/api/mcp