Skip to content

Classroom50 fails to verify Actions spending cap for organizations billed via GitHub Enterprise #1035

Description

@AdamFiser

Which part is affected?

Web app (classroom50.org)

What happened?

Description

Classroom50 shows an error when checking the GitHub Actions spending cap for an organization whose billing is managed at the GitHub Enterprise level (not at the organization level).

Actual behavior

  • The "My classrooms" list shows: Couldn't verify the Actions spending cap.
  • The spending cap setting is displayed as Unreadable.
  • The "View on GitHub" link points to https://github.com/organizations/<org>/settings/billing/budgets, which does not exist for this organization.
  • Navigating manually to https://github.com/organizations/<org>/settings/billing/summary shows:

    This organization is part of "" and is billed at the enterprise level. For details of your organization's usage and spend, access your enterprise account billing settings.

  • The actual spending limits are correctly configured in the Enterprise billing settings.

Screenshots

Image Image Image Image

What did you expect to happen?

As confirmed in #463, there is no corrective action an admin can take from classroom50 or from the organization's own billing page when billing is managed at the Enterprise level — the setting simply does not exist there, and classroom50's token cannot read Enterprise billing data. An error message with no possible remediation is not useful and should not be shown by default as an alarming failure.

Suggested fixes, in order of preference:

  1. Treat the specific failure as a reliable signal, not a generic error. Per couldn't verify the Actions spending cap (read failed (400)) #463, the underlying API call fails with a 400 specifically when billing is Enterprise-managed. Classroom50 can catch this specific failure mode (rather than a generic "unreadable" state) and treat it as a known, expected condition instead of an error.
  2. Auto-detect and downgrade/hide the check by default for such organizations: on detecting the Enterprise-billing failure, skip the org-level spending cap check entirely, or replace the alarming error with a neutral, dismissible informational note (matching the maintainer's own description of it as "only an advisory warning").
  3. Fix or remove the dead link. Regardless of the above, "View on GitHub" should not point to a nonexistent .../settings/billing/budgets page for Enterprise-billed orgs. Either omit the link, or point it to the org's billing summary page (which correctly explains the Enterprise billing relationship) or to enterprise-level billing settings if the enterprise slug is determinable.
  4. Manual opt-out fallback, if reliable auto-detection is not feasible: a setting to suppress/dismiss the spending-cap warning for a given classroom/organization.

Steps to reproduce

  1. Open the "My classrooms" list in classroom50 for an organization that is part of a GitHub Enterprise account.
  2. Observe the error message shown on the page.
  3. Open the classroom/organization settings related to the Actions spending cap.
  4. Click "View on GitHub" from that settings page.

Version and environment

actual web clasroom50.org
Classroom 50 diagnostics
Version: 1.52.2 (450e4fa)
Built: 2026-09-18T05:52:21.150Z
Generated: 2026-09-19T05:35:33.409Z
User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36
Language: cs-CZ
OAuth scopes: admin:org, read:user, repo, workflow
Org: xxxxxxx — plan: enterprise (supported)

Recent errors: none

Relevant logs or output

Before submitting

  • I searched existing issues and this is not a duplicate.
  • I removed any tokens, secrets, or private student data from the logs above.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P3Low — nice to have / somedayWebWeb frontend (web/)enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions