Budibase/budibase · error · HTTPError
Slack integration is not configured for this agent
Error message
Slack integration is not configured for this agent
What it means
This HTTP 400 error is thrown by validateSlackIntegration in packages/server/src/sdk/workspace/ai/deployments/slack.ts when the agent being deployed or saved has no slackIntegration object at all. Slack-based deployments (webhook URL generation, app manifest creation, OAuth exchange) require the agent to carry a configured Slack integration first. The guard runs before token validation.
Source
Thrown at packages/server/src/sdk/workspace/ai/deployments/slack.ts:50
const normaliseAppName = (name: string) =>
truncate(name.trim() || "Budibase Agent", MAX_APP_NAME_LENGTH)
const normaliseBotDisplayName = (name: string) => {
const safeName = name
.trim()
.toLowerCase()
.replace(/[^a-z0-9._-]+/g, "-")
.replace(/^-+|-+$/g, "")
return truncate(safeName || "budibase-agent", MAX_BOT_DISPLAY_NAME_LENGTH)
}
export const validateSlackIntegration = (
agent: Agent
): ResolvedSlackIntegration => {
const integration = agent.slackIntegration
if (!integration) {
throw new HTTPError(
"Slack integration is not configured for this agent",
400
)
}
const botToken = integration.botToken?.trim()
const signingSecret = integration.signingSecret?.trim()
if (!botToken || !signingSecret) {
throw new HTTPError(
"Slack integration requires botToken and signingSecret",
400
)
}
return {
botToken,
signingSecret,View on GitHub (pinned to a81a902e9a)
Solutions
- Add a slackIntegration object to the agent with botToken and signingSecret before deploying or building webhook URLs.
- Re-save the agent through the agent configuration API ensuring the slackIntegration block is included in the payload.
- Verify you are targeting the correct agent and channel - use the Teams path if the agent is Teams-configured.
- If a save is dropping the field, check the API payload/schema for omitted or misnamed keys (slackIntegration).
Example fix
// before
await deployAgent({ agent, provider: "slack" }) // agent.slackIntegration === undefined
// after
agent.slackIntegration = {
botToken: process.env.SLACK_BOT_TOKEN,
signingSecret: process.env.SLACK_SIGNING_SECRET
}
await updateAgent(agent)
await deployAgent({ agent, provider: "slack" }) Defensive patterns
Strategy: validation
Validate before calling
if (!agent.slackIntegration) {
throw new Error(`Agent ${agent._id} has no Slack integration configured; add slackIntegration before deploying to Slack`)
} Type guard
const hasSlackIntegration = (
agent: Agent
): agent is Agent & { slackIntegration: NonNullable<Agent["slackIntegration"]> } =>
agent.slackIntegration != null Try / catch
try {
await deployAgentToSlack(agent)
} catch (e) {
if (e instanceof HTTPError && e.message.includes("Slack integration is not configured")) {
// redirect user to agent Slack settings
}
throw e
} Prevention
- Gate the Slack deploy UI action on the presence of a slackIntegration config.
- When creating agents via API, include the full integration block in the payload.
- Check agent channel type before invoking Slack-specific endpoints.
When it happens
Trigger: Deploying a Slack-enabled agent whose agent.slackIntegration is undefined/null - e.g. requesting a Slack webhook URL or Slack app creation for an agent that was created without Slack settings, or after a save that stripped the integration field.
Common situations: Agent was created via API/automation without the slackIntegration block; a migration or schema change dropped the field; the caller deployed to Slack when the agent was actually configured for a different channel (e.g. Teams only).
Related errors
- Teams integration is not configured for this agent
- Slack integration requires botToken and signingSecret
- Slack app configuration token is required
- Slack app configuration refresh token is required
- Error getting status
AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29).
Data as JSON: /api/errors/73240012a7ef63aa.
Report an issue: GitHub.