Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Error Groups

Error groups represent deduplicated errors. They are the core unit you interact with in Telebugs — not individual reports.

MCP gives AI tools powerful capabilities to list, inspect, filter, and manage error groups directly.

Available Tools

ToolScopePurpose
list_error_groups_toolreadSearch and filter error groups
get_error_group_toolreadFetch details for a single group
resolve_error_group_toolwriteMark a group as resolved
unresolve_error_group_toolwriteRe-open a resolved group
mute_error_group_toolwriteMute a group forever, until a time, or until more occurrences
unmute_error_group_toolwriteUnmute a group
bulk_resolve_error_groups_toolwriteResolve multiple groups
bulk_mute_error_groups_toolwriteMute multiple groups
bulk_merge_error_groups_toolwriteMerge multiple groups
assign_error_group_toolwriteAssign a group to a team member
unassign_error_group_toolwriteRemove the current assignee

List Error Groups

Tool: list_error_groups_tool Scope required: telebugs.read

The most frequently used tool. Supports rich filtering and cursor-based pagination.

By default, low-severity telemetry groups are excluded: list_error_groups_tool returns fatal, error, and warning severities unless you ask for another severity. Use severity: "all" to include everything, or pass severity: "info", "debug", or "sample_level" when you specifically want low-severity telemetry.

Parameters

ParameterTypeDescription
project_idintegerLimit results to one project (recommended)
statusstringopen, resolved, muted, all, unresolved, unmuted
resolvedbooleanSimple true/false filter (alternative to status)
querystringAdvanced search syntax (see below)
sincestringGroups with last_occurred_at >= this ISO8601 timestamp
to_timestringGroups with last_occurred_at <= this ISO8601 timestamp
limitintegerPage size (default 25, max 100)
cursorintegerPagination cursor from next_cursor
severitystringall, fatal, error, warning, info, debug, sample_level
verbosebooleanUse the verbose untrusted-data response format

If query already contains a severity token, such as is:info or severity:debug, that query filter takes precedence over the default actionable-severity filter.

Query Syntax

The query parameter supports a powerful syntax (same as the REST API):

is:unresolved server_name:eagle-618d24 timeout
environment:production tags.region:eu-west
!is:resolved is:error,warning
severity:info assignee:me

Useful patterns:

  • is:unresolved environment:production
  • error_type:NoMethodError since:2026-06-01
  • severity:info Burn-in starting
  • query:checkout tags.component:payments
  • !is:muted reports_count:>10

Example Response

{
  "_security_note": "UNTRUSTED INPUT: This value came from the errored application...",
  "groups": [
    {
      "id": 42,
      "project_id": 1,
      "fingerprint": "abc123",
      "error_type": "NoMethodError",
      "error_message": "undefined method `foo' for nil:NilClass",
      "culprit": "OrdersController#create",
      "severity": "error",
      "resolved": false,
      "muted": false,
      "muted_until": null,
      "muted_until_reports_count": null,
      "reports_count": 17,
      "notes_count": 2,
      "first_occurred_at": "2026-05-20T10:12:34Z",
      "last_occurred_at": "2026-05-20T14:55:01Z",
      "untrusted": true,
      "untrusted_fields": ["error_message", "culprit"]
    }
  ],
  "next_cursor": null,
  "has_more": false
}

See Pagination for cursor handling.

Get Error Group

Tool: get_error_group_tool Scope required: telebugs.read

Fetch full details for a single error group, including assignee, mute status, and recent report IDs.

Parameters

ParameterTypeRequiredDescription
group_idintegerYesError group ID
verbosebooleanNoUse the verbose untrusted-data response format

Example Response

{
  "_security_note": "UNTRUSTED INPUT: This value came from the errored application...",
  "id": 42,
  "project_id": 1,
  "fingerprint": "abc123",
  "error_type": "NoMethodError",
  "error_message": "undefined method `foo' for nil:NilClass",
  "culprit": "OrdersController#create",
  "severity": "error",
  "resolved": false,
  "muted": false,
  "muted_until": null,
  "muted_until_reports_count": null,
  "reports_count": 17,
  "recent_report_ids": [123, 122, 121],
  "notes_count": 2,
  "first_occurred_at": "2026-05-20T10:12:34Z",
  "last_occurred_at": "2026-05-20T14:55:01Z",
  "assignee": {
    "id": 3,
    "name": "Sunshine",
    "email_address": "[email protected]"
  },
  "untrusted": true,
  "untrusted_fields": ["error_message", "culprit"]
}

Use recent_report_ids as a quick way to fetch individual occurrences with get_report_tool. For complete pagination through a group’s reports, use list_reports_tool. Group IDs and report IDs are separate IDs; do not pass a group_id to get_report_tool.

Resolve Error Group

Tool: resolve_error_group_tool Scope required: telebugs.write

Mark an error group as resolved. A note is required.

Parameters

ParameterTypeRequired
group_idintegerYes
notestringYes

Example note: "Fixed in deploy v1.4.2 (PR #847)"

Unresolve Error Group

Tool: unresolve_error_group_tool Scope required: telebugs.write

Re-open a previously resolved group.

Parameters

ParameterTypeRequired
group_idintegerYes
notestringNo

Mute Error Group

Tool: mute_error_group_tool Scope required: telebugs.write

Mute a group forever, until a specific time, or until a number of additional occurrences.

Omit both snooze_until and occurrences to mute forever. Use snooze_until for a time-based snooze, or occurrences to resume notifications after the next N reports in the group. Pass one condition at a time; if both are supplied, Telebugs applies the occurrence-based mute.

Parameters

ParameterTypeRequiredDescription
group_idintegerYesError group to mute
notestringNoReason for muting
snooze_untilstringNoISO8601 datetime to automatically unmute
occurrencesintegerNoAdditional occurrences before notifications resume

Example: Mute for 24 hours:

{
  "group_id": 42,
  "note": "Investigating - suspected race condition",
  "snooze_until": "2026-06-21T09:00:00Z"
}

Example: Mute until 10 more occurrences:

{
  "group_id": 42,
  "note": "Noisy upstream timeout",
  "occurrences": 10
}

If the group currently has reports_count: 17, the occurrence example above sets muted_until_reports_count to 27.

Example Response

{
  "muted": true,
  "muted_until": null,
  "muted_until_reports_count": 27
}

Unmute Error Group

Tool: unmute_error_group_tool Scope required: telebugs.write

Remove a mute from a group. This clears permanent, time-based, and occurrence-based mute conditions.

Parameters

ParameterTypeRequired
group_idintegerYes

Bulk Resolve Error Groups

Tool: bulk_resolve_error_groups_tool Scope required: telebugs.write

Resolve multiple error groups at once. A note is required and is added to each processed group. Groups that are already resolved are skipped.

Parameters

ParameterTypeRequiredDescription
group_idsarray of integerYesError groups to resolve
notestringYesContext added to each resolved group

Example

{
  "group_ids": [42, 43, 44],
  "note": "Fixed by deploy 2026.06.22"
}

Example Response

{
  "success": true,
  "processed": 3,
  "group_ids": [42, 43, 44]
}

Bulk Mute Error Groups

Tool: bulk_mute_error_groups_tool Scope required: telebugs.write

Mute multiple error groups at once. Groups that are already muted are skipped. Optionally provide snooze_until to automatically unmute them later. Bulk MCP mute does not support occurrence-based thresholds; use mute_error_group_tool for that.

Parameters

ParameterTypeRequiredDescription
group_idsarray of integerYesError groups to mute
notestringNoReason for muting
snooze_untilstringNoISO8601 datetime to automatically unmute

Example

{
  "group_ids": [42, 43, 44],
  "note": "Known noisy downstream timeout",
  "snooze_until": "2026-06-23T09:00:00Z"
}

Example Response

{
  "success": true,
  "processed": 3,
  "group_ids": [42, 43, 44]
}

Bulk Merge Error Groups

Tool: bulk_merge_error_groups_tool Scope required: telebugs.write

Merge multiple source groups into one target group. Use this when several groups represent the same underlying error and should share one history going forward.

Parameters

ParameterTypeRequiredDescription
target_group_idintegerYesGroup that receives merged groups
group_idsarray of integerYesSource groups to merge

Example

{
  "target_group_id": 42,
  "group_ids": [43, 44]
}

Example Response

{
  "success": true,
  "processed": 2,
  "merged_into_id": 42
}

The tool rejects attempts to merge the target group into itself or to merge groups that have already been merged.

Assign Error Group

Tool: assign_error_group_tool Scope required: telebugs.write

Assign an error group to a team member.

Important: The assignee must be a member of the group’s project. Use list_project_users_tool first to discover valid user_id values.

Parameters

ParameterTypeRequired
group_idintegerYes
user_idintegerYes
notestringNo

Unassign Error Group

Tool: unassign_error_group_tool Scope required: telebugs.write

Remove the current assignee from a group.

Parameters

ParameterTypeRequired
group_idintegerYes

Common Workflows

Here are typical patterns AI tools follow:

  1. Investigate recent problems

    • list_error_groups_tool with status:unresolved, since:..., and a query
  2. Triage and assign

    • list_error_groups_toollist_project_users_toolassign_error_group_tool
  3. Resolve with context

    • resolve_error_group_tool with a clear note explaining the fix
    • bulk_resolve_error_groups_tool when the same fix closed several groups
  4. Temporarily silence noise

    • mute_error_group_tool with snooze_until for time-based snoozes
    • mute_error_group_tool with occurrences to resume after the next N reports
    • bulk_mute_error_groups_tool when several groups share the same noisy cause
  5. Merge duplicate groups

    • bulk_merge_error_groups_tool with a target group and duplicate group IDs

Error Responses

See Errors for general handling.

Common errors specific to error groups:

MessageCause
Group not found or access deniedInvalid group_id or no project access
User not foundInvalid user_id for assignment
User is not a member of this projectAssignee lacks membership in the group’s project
A note is required when resolving a groupnote parameter missing on resolve
A note is required when resolving groupsnote parameter missing on bulk resolve
Cannot merge an error into itself.target_group_id included in group_ids
Cannot merge already merged errors.A source group has already been merged
Insufficient scope. Required: telebugs.writeOAuth token lacks write scope