{"record":{"id":"6a75adf16e32999e","repo":"paperclipai/paperclip","slug":"discord-message-content-intent-is-not-enabled-for","errorCode":null,"errorMessage":"Discord Message Content intent is not enabled for this application","messagePattern":"Discord Message Content intent is not enabled for this application","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"server/src/services/chat-discord.ts","lineNumber":238,"sourceCode":"      \"application lookup\",\n    ),\n    discordJson<DiscordGuild>(\n      input.fetch,\n      input.botToken,\n      `/guilds/${encodeURIComponent(guildId)}`,\n      \"server membership lookup\",\n    ),\n  ]);\n  if (!user.bot || !user.id || !user.username) {\n    throw new Error(\"Discord token does not identify a bot user\");\n  }\n  if (application.id !== applicationId || user.id !== applicationId) {\n    throw new Error(\n      \"Discord Application ID does not match the supplied bot token\",\n    );\n  }\n  if (((application.flags ?? 0) & MESSAGE_CONTENT_FLAGS) === 0) {\n    throw new Error(\n      \"Discord Message Content intent is not enabled for this application\",\n    );\n  }\n  if (guild.id !== guildId) {\n    throw new Error(\"Discord bot is not installed in the selected server\");\n  }\n  return {\n    providerAccountId: guildId,\n    providerAccountLabel: guild.name ?? guildId,\n    botExternalId: user.id,\n    botUsername: user.username,\n    botLabel: user.global_name ?? application.name ?? user.username,\n    ...(user.avatar\n      ? {\n          botAvatarUrl: `https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}.png`,\n        }\n      : {}),\n  };","sourceCodeStart":220,"sourceCodeEnd":256,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/services/chat-discord.ts#L220-L256","documentation":"verifyDiscordBot checks the application's flags for the Message Content intent bit (MESSAGE_CONTENT_FLAGS). This error means the bot's application has not enabled the privileged Message Content intent, which Discord requires before message content is delivered to the bot.","triggerScenarios":"Running verifyDiscordBot for an application where application.flags lacks the message-content bit; a newly created bot with default intents; toggling the intent off in the Developer Portal after configuration.","commonSituations":"Fresh bots that never enabled privileged gateway intents; apps created before the Message Content intent rollout that had grandfathered access until regeneration; teams migrating bots between applications.","solutions":["Go to Discord Developer Portal > your Application > Bot > Privileged Gateway Intents and enable 'Message Content Intent', then restart verification","If the bot is in 100+ servers, complete Discord's verification process required to enable privileged intents at scale","Confirm with GET /oauth2/applications/@me that the flags bit is present after toggling"],"exampleFix":"// before (portal settings)\nMESSAGE CONTENT INTENT: OFF\n// after (portal settings)\nMESSAGE CONTENT INTENT: ON  // Developer Portal > Bot > Privileged Gateway Intents","handlingStrategy":"try-catch","validationCode":"const app = await fetch(\"https://discord.com/api/v10/oauth2/applications/@me\", {\n  headers: { authorization: `Bot ${botToken}` },\n}).then((r) => r.json());\nconst MESSAGE_CONTENT_FLAGS = 1 << 15; // APPLICATION_FLAGS bit for GatewayIntentBits.MessageContent\nif (((app.flags ?? 0) & MESSAGE_CONTENT_FLAGS) === 0) {\n  throw new Error(\"Enable Message Content Intent in the Developer Portal\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  await verifyDiscordBot(input);\n} catch (err) {\n  if (err.message.includes(\"Message Content intent\")) {\n    throw new ConfigError(\"Enable 'Message Content Intent' under Developer Portal > Bot > Privileged Gateway Intents\");\n  }\n  throw err;\n}","preventionTips":["Enable Message Content Intent (and other needed privileged intents) immediately after creating a bot","Re-check intents after regenerating or migrating a bot between applications","Include the flags check in a setup/health script so misconfiguration surfaces at deploy time"],"tags":["discord","intents","configuration","bot-setup"],"backgroundTag":"feature-not-enabled","analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-09-10T03:14:50.855Z","contentChangedAt":"2026-09-10T03:14:50.855Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}