The outer catch at releases.ts:79 silently swallowed all errors when
loading widget secrets, including the case where the widget_secret
table didn't exist (migration not applied). This caused tokens to
silently become undefined, leading to unauthenticated API calls and
rate limit errors.
Now logs a warning with the itemId and error so the issue is
diagnosable in server logs instead of failing silently.