Read-only Python and Node.js scripts that find Slack app problems through the API — ok:false behind an HTTP 200, missing scopes, a bot outside the channel it posts to, and pagination nobody followed. They report and print the repair; they never write.
Every script here is read only. They hold a credential to a live account, so none of them writes: each one reads through the API, reports exactly what is wrong, and prints the repair for you to run.
By Allan Niñal — AI Solutions Engineer. I build AI powered tools, data products, and AWS automation. Full write ups with diagrams for each fix live at allanninal.dev/slack.
- the bot answers its own messages in an endless loop — https://www.allanninal.dev/slack/bot-message-echo-loop/
- not_in_channel: the bot was never invited to the channel — https://www.allanninal.dev/slack/bot-not-in-channel/
- the same message posted three times, and the ts says why — https://www.allanninal.dev/slack/duplicate-messages-no-dedupe/
- installs keyed on team_id alone collide on Enterprise Grid — https://www.allanninal.dev/slack/enterprise-id-not-stored/
- Slack disabled event delivery and will not turn it back on — https://www.allanninal.dev/slack/event-subscriptions-auto-disabled/
- files.upload is retired: one probe returns method_deprecated — https://www.allanninal.dev/slack/files-upload-retired/
- slack answers HTTP 200 and puts the failure in the body — https://www.allanninal.dev/slack/http-200-ok-false/
- missing_scope tells you the scope needed and the ones you have — https://www.allanninal.dev/slack/missing-scope-on-read/
- conversations.history clamped to 15 objects and 1 per minute — https://www.allanninal.dev/slack/non-marketplace-history-clamp/
- next_cursor is ignored so only the first page is ever seen — https://www.allanninal.dev/slack/pagination-not-followed/
- files made public with a link that works without a Slack login — https://www.allanninal.dev/slack/public-file-links-exposed/
- every Slack profile has a null email and nothing errored — https://www.allanninal.dev/slack/users-read-email-missing/
Each folder holds the same script in Python and in Node.js, plus its test. Set the environment variables named in that folder's README and run it. Nothing writes, so there is no dry run to enable and no flag to be careful about — use a restricted, read-only credential and the worst case is that it tells you nothing is wrong.
MIT. Use it, change it, ship it.