affaan-m/ECC · error

Announcements discussion category is required

Error message

Announcements discussion category is required

What it means

createOrFindReleaseDiscussion needs the repo's 'Announcements' discussion category to post the release thread; the category lookup in discussionCategories returned no match, so the discussion cannot be created.

Source

Thrown at scripts/discord/release-announce.mjs:74

    `query($owner:String!,$name:String!){repository(owner:$owner,name:$name){id discussionCategories(first:25){nodes{id name}}}}`,
    { owner, name },
  );
  const repository = data.repository;
  let cursor = null;
  let existing = null;
  for (let page = 0; page < 50 && !existing; page += 1) {
    const pageData = await githubGraphql(
      `query($owner:String!,$name:String!,$after:String){repository(owner:$owner,name:$name){discussions(first:100,after:$after,orderBy:{field:CREATED_AT,direction:DESC}){nodes{id title body url category{name}} pageInfo{hasNextPage endCursor}}}}`,
      { owner, name, after: cursor },
    );
    const discussions = pageData.repository.discussions;
    existing = findReleaseDiscussion(discussions.nodes, marker);
    if (!discussions.pageInfo.hasNextPage) break;
    cursor = discussions.pageInfo.endCursor;
  }
  if (existing) return existing;
  const category = repository.discussionCategories.nodes.find(item => item.name === 'Announcements');
  if (!category) throw new Error('Announcements discussion category is required');
  const title = `${release.name || release.tag_name} release`;
  const body = [marker, release.body || '', `Release: ${release.html_url}`].filter(Boolean).join('\n\n');
  const created = await githubGraphql(
    `mutation($repo:ID!,$cat:ID!,$title:String!,$body:String!){createDiscussion(input:{repositoryId:$repo,categoryId:$cat,title:$title,body:$body}){discussion{id title body url category{name}}}}`,
    { repo: repository.id, cat: category.id, title, body },
  );
  return created.createDiscussion.discussion;
}

function discussionFromEnvironment() {
  if (env.DISCUSSION_CATEGORY !== 'Announcements') throw new Error('discussion is not an Announcement');
  return {
    id: env.DISCUSSION_ID,
    title: env.DISCUSSION_TITLE,
    body: env.DISCUSSION_BODY,
    url: env.DISCUSSION_URL,
  };
}

View on GitHub (pinned to 06c5e118c4)

Solutions

  1. Supply the required argument/option named in the message and re-run the command.
Defensive patterns

Strategy: validation

When it happens

Trigger: Triggered when release-announce.mjs rejects the current invocation: Announcements discussion category is required

Common situations: Occurs while running scripts/discord/release-announce.mjs with invalid arguments, missing flags, or a failing external dependency; the guard at scripts/discord/release-announce.mjs:74 aborts the command with this message.


AI-assisted analysis of affaan-m/ECC@06c5e118c4 (2026-08-18). Data as JSON: /api/errors/00c0c384e129ce9b. Report an issue: GitHub.