FlowiseAI/Flowise · error · Error
Missing Slack credentials. Provide either an OAuth2 access t
Error message
Missing Slack credentials. Provide either an OAuth2 access token or a Bot Token with Team ID.
What it means
Thrown by SlackMCP.getTools when neither credential path is satisfied: there is no OAuth2 access_token AND there is no (botToken + teamId) pair. The node supports either an OAuth2 token (HTTP transport to mcp.slack.com/mcp) or a Bot Token + Team ID (stdio transport via @modelcontextprotocol/server-slack), and at least one complete set is required.
Source
Thrown at packages/components/nodes/tools/MCP/Slack/SlackMCP.ts:127
}
},
'http'
)
} else if (botToken && teamId) {
const packagePath = getNodeModulesPackagePath('@modelcontextprotocol/server-slack/dist/index.js')
const serverParams = {
command: 'node',
args: [packagePath],
env: {
SLACK_BOT_TOKEN: botToken,
SLACK_TEAM_ID: teamId
}
}
toolkit = new MCPToolkit(serverParams, 'stdio')
} else {
throw new Error('Missing Slack credentials. Provide either an OAuth2 access token or a Bot Token with Team ID.')
}
await toolkit.initialize()
const tools = toolkit.tools ?? []
return tools as Tool[]
}
}
module.exports = { nodeClass: Slack_MCP }
View on GitHub (pinned to abe4a8601a)
Solutions
- Choose one auth method: OAuth2 (provide access_token) OR Bot Token (provide BOTH botToken and teamId).
- For Bot Token mode, obtain the Team ID (T-prefixed ID) from Slack and fill both botToken and teamId.
- For OAuth2, ensure access_token is present (the code also accepts the 'accessToken' alias and refreshes it).
- Re-bind the corrected credential and retry.
Example fix
// OAuth2 path (HTTP): // credential.access_token = 'xoxb-...' // Bot Token path (stdio): // credential.botToken = 'xoxb-...' // credential.teamId = 'T12345'
Defensive patterns
Strategy: validation
Validate before calling
const credentialData = await getCredentialData(nodeData.credential ?? '', options)
const accessToken = getCredentialParam('access_token', credentialData, nodeData) || getCredentialParam('accessToken', credentialData, nodeData)
const botToken = getCredentialParam('botToken', credentialData, nodeData)
const teamId = getCredentialParam('teamId', credentialData, nodeData)
const ok = !!accessToken || (!!botToken && !!teamId)
if (!ok) throw new Error('Missing Slack credentials') Type guard
type SlackCred = { access_token?: string; botToken?: string; teamId?: string }
function hasCompleteSlackCred(c: SlackCred): boolean {
return (!!c.access_token && c.access_token.trim().length > 0)
|| (!!c.botToken && c.botToken.trim().length > 0 && !!c.teamId && c.teamId.trim().length > 0)
} Try / catch
try { await slackMcp.getTools(nodeData, options) }
catch (e) { if (e instanceof Error && e.message.startsWith('Missing Slack credentials')) { /* guide user to OAuth2 OR botToken+teamId */ } } Prevention
- Validate the credential at save time so partial entries cannot be stored.
- Document the two supported auth modes clearly on the credential component.
- Make teamId required when botToken is present (conditional required-field validation).
When it happens
Trigger: Calling getTools with a Slack credential that has no access_token, or has a botToken but no teamId (or vice versa), or a completely empty credential.
Common situations: User intended OAuth2 but only entered a bot token; entered bot token but forgot Team ID; credential created but no fields filled; mixed fields from two auth methods incompletely.
Related errors
- Missing Github Access Token
- No postgres url provided
- Missing credentials: provide Bearer token from flow/credenti
- Cloudflare API Token is missing in credential.
- CometAPI API Key is missing or empty. Please provide a valid
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/4b2762e86332ff0e.
Report an issue: GitHub.