Skip to content

Ignore faults

View Markdown
POST https://app.honeybadger.io/v3/projects/{project_id}/faults/ignore
Required scope faults:write

Marks faults as ignored, which stops data collection for them. Name them with fault_ids, narrow them with q or a time filter, or pass "all": true to ignore every fault in the project. The request must include one of these.

Example request
Terminal window
curl -X POST "https://app.honeybadger.io/v3/projects/$PROJECT_ID/faults/ignore" \
-H "Authorization: Bearer $HONEYBADGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"fault_ids": [
"12345",
"12346"
]
}'

Parameters

1

Path parameters

FieldTypeDescription
project_id requiredstringProject ID.

Request body

Selects the faults a bulk operation applies to

FieldTypeDescription
allbooleanApply to every fault the other filters match, which with no other filters is every fault in the project. Required to make an unbounded change explicit; ignored when fault_ids names specific faults.
dry_runbooleanReport what the request would change without changing it — no state change, no comments, no timeline entries. The response has the same shape either way, with dry_run echoed back.
fault_idsarray<string>IDs of the faults to change. If any ID isn't a fault in this project, nothing changes. Omit to act on everything the query and time filters match; with no filters, that requires "all": true.
qstringSearch query, in the syntax of the web UI's error search, applied when fault_ids is left out. See Error search for the syntax and filters.
created_afternumberOnly faults created after this Unix timestamp. Applied when fault_ids is omitted, alongside q.
occurred_afternumberOnly faults that occurred after this Unix timestamp. Applied when fault_ids is omitted, alongside q.
occurred_beforenumberOnly faults that occurred before this Unix timestamp. Applied when fault_ids is omitted, alongside q.

Responses

1

200 Applied, or reported without applying when dry_run was set.

The body says how many faults changed and names them.

Example payload
{
"data": {
"count": 12,
"dry_run": false,
"fault_ids": [
"12345",
"12346"
],
"fault_ids_truncated": false
},
"meta": {
"request_id": "6f1c2b0e-8d4a-4f6e-9b2a-3c5d7e9f1a2b"
}
}
Response schema7
FieldTypeDescription
data requiredobject
data.count requiredintegerHow many faults changed. Exact, and counts what changed rather than what matched: resolving a hundred faults of which ninety were already resolved reports ten. On a dry run, how many would have changed.
data.dry_run requiredbooleanTrue when nothing was written. Echoed back so a response is never ambiguous about whether it took effect.
data.fault_ids requiredarray<string>IDs of the faults that changed, capped at 100. count is exact regardless; see fault_ids_truncated.
data.fault_ids_truncatedbooleanTrue when more faults changed than fault_ids lists.
metaobject
meta.request_idstringUnique identifier for the request, for correlating with support.

Errors

4

401 Unauthorized

The credential is missing, invalid, expired or revoked (unauthorized), or was sent in a way v3 doesn’t accept (see the examples).

Example payload: unauthorized (Missing, malformed, expired or revoked credential)
{
"error": {
"code": "unauthorized",
"message": "Access denied"
},
"meta": {
"request_id": "abc123"
}
}
Example payload: unsupported_auth_scheme (Sent as HTTP basic, which v3 does not accept)
{
"error": {
"code": "unsupported_auth_scheme",
"message": "Send the credential as `Authorization: Bearer <token>`; v3 does not accept HTTP basic"
},
"meta": {
"request_id": "abc123"
}
}
Example payload: credential_in_query (Sent as the `auth_token` query parameter)
{
"error": {
"code": "credential_in_query",
"message": "Credentials must be sent in the Authorization header"
},
"meta": {
"request_id": "abc123"
}
}
Response schema6
FieldTypeDescription
error requiredobject
error.code requiredstringMachine-readable code. Branch on this, not the message. Allowed values: unauthorized, unsupported_auth_scheme, credential_in_query, access_denied, insufficient_scope, requires_user_token, project_restricted, account_inactive, account_parked, feature_unavailable, not_found, validation_error, delete_failed, limit_reached, rate_limit_exceeded, concurrent_request, streams_provisioning, ingestion_key_not_accepted, maintenance_mode, invalid_parameter, forbidden_attributes, service_unavailable, ambiguous_account, fault_merged.
error.message requiredstringHuman-readable explanation.
error.detailsarray<object> | objectA list of {field, message} on validation_error and invalid_parameter, and on feature_unavailable or limit_reached when one field caused the refusal; {required_scope, token_scopes} on insufficient_scope; {merged_into, location} on fault_merged. Absent when there's nothing to add.
metaobject
meta.request_idstringUnique identifier for the request, for correlating with support.

403 Forbidden

The credential isn’t allowed to do this. error.code says why. An account or project the credential doesn’t cover is 404 not_found, not 403.

Example payload: access_denied (The credential isn't allowed to do this to this record)
{
"error": {
"code": "access_denied",
"message": "Access denied"
},
"meta": {
"request_id": "abc123"
}
}
Example payload: insufficient_scope (The credential lacks the permission this endpoint requires)
{
"error": {
"code": "insufficient_scope",
"message": "Insufficient scope",
"details": {
"required_scope": "faults:write",
"token_scopes": [
"faults:read",
"insights:read"
]
}
},
"meta": {
"request_id": "abc123"
}
}
Example payload: requires_user_token (The endpoint records who acted, and an account token has nobody)
{
"error": {
"code": "requires_user_token",
"message": "This endpoint records the person who acted, so it requires a user credential rather than an account token"
},
"meta": {
"request_id": "abc123"
}
}
Example payload: project_restricted (A project-restricted credential cannot create a project)
{
"error": {
"code": "project_restricted",
"message": "Project-restricted tokens cannot create projects"
},
"meta": {
"request_id": "abc123"
}
}
Response schema6
FieldTypeDescription
error requiredobject
error.code requiredstringMachine-readable code. Branch on this, not the message. Allowed values: unauthorized, unsupported_auth_scheme, credential_in_query, access_denied, insufficient_scope, requires_user_token, project_restricted, account_inactive, account_parked, feature_unavailable, not_found, validation_error, delete_failed, limit_reached, rate_limit_exceeded, concurrent_request, streams_provisioning, ingestion_key_not_accepted, maintenance_mode, invalid_parameter, forbidden_attributes, service_unavailable, ambiguous_account, fault_merged.
error.message requiredstringHuman-readable explanation.
error.detailsarray<object> | objectA list of {field, message} on validation_error and invalid_parameter, and on feature_unavailable or limit_reached when one field caused the refusal; {required_scope, token_scopes} on insufficient_scope; {merged_into, location} on fault_merged. Absent when there's nothing to add.
metaobject
meta.request_idstringUnique identifier for the request, for correlating with support.

404 Not Found

Resource not found

Example payload
{
"error": {
"code": "not_found",
"message": "Resource not found"
},
"meta": {
"request_id": "abc123"
}
}
Response schema6
FieldTypeDescription
error requiredobject
error.code requiredstringMachine-readable code. Branch on this, not the message. Allowed values: unauthorized, unsupported_auth_scheme, credential_in_query, access_denied, insufficient_scope, requires_user_token, project_restricted, account_inactive, account_parked, feature_unavailable, not_found, validation_error, delete_failed, limit_reached, rate_limit_exceeded, concurrent_request, streams_provisioning, ingestion_key_not_accepted, maintenance_mode, invalid_parameter, forbidden_attributes, service_unavailable, ambiguous_account, fault_merged.
error.message requiredstringHuman-readable explanation.
error.detailsarray<object> | objectA list of {field, message} on validation_error and invalid_parameter, and on feature_unavailable or limit_reached when one field caused the refusal; {required_scope, token_scopes} on insufficient_scope; {merged_into, location} on fault_merged. Absent when there's nothing to add.
metaobject
meta.request_idstringUnique identifier for the request, for correlating with support.

422 Unprocessable Content

The request was refused and nothing was changed. error.code and error.details say why — see the examples below.

Example payload: missing_selection (The body named no faults)
{
"error": {
"code": "validation_error",
"message": "Name the faults to change with fault_ids, narrow them with a filter, or pass all=true to change every fault in the project.",
"details": [
{
"field": "fault_ids",
"message": "required unless a filter or all=true is given"
}
]
},
"meta": {
"request_id": "abc123"
}
}
Example payload: unrecognised_filter (q contained a filter that matches nothing)
{
"error": {
"code": "validation_error",
"message": "Unrecognised search filters: is:unresolved. They match nothing, so this would have applied to every fault the rest of the query matched.",
"details": [
{
"field": "q",
"message": "unrecognised filter is:unresolved"
}
]
},
"meta": {
"request_id": "abc123"
}
}
Example payload: unknown_fault_ids (`fault_ids` named a fault that isn't in this project)
{
"error": {
"code": "validation_error",
"message": "fault_ids has unknown ids: 99999",
"details": [
{
"field": "fault_ids",
"message": "has unknown ids: 99999"
}
]
},
"meta": {
"request_id": "abc123"
}
}
Example payload: ambiguous_account (`assignee:me` in q, from a credential that covers more than one account)
{
"error": {
"code": "ambiguous_account",
"message": "This credential covers more than one account, so \"me\" is ambiguous."
},
"meta": {
"request_id": "abc123"
}
}
Response schema6
FieldTypeDescription
error requiredobject
error.code requiredstringMachine-readable code. Branch on this, not the message. Allowed values: unauthorized, unsupported_auth_scheme, credential_in_query, access_denied, insufficient_scope, requires_user_token, project_restricted, account_inactive, account_parked, feature_unavailable, not_found, validation_error, delete_failed, limit_reached, rate_limit_exceeded, concurrent_request, streams_provisioning, ingestion_key_not_accepted, maintenance_mode, invalid_parameter, forbidden_attributes, service_unavailable, ambiguous_account, fault_merged.
error.message requiredstringHuman-readable explanation.
error.detailsarray<object> | objectA list of {field, message} on validation_error and invalid_parameter, and on feature_unavailable or limit_reached when one field caused the refusal; {required_scope, token_scopes} on insufficient_scope; {merged_into, location} on fault_merged. Absent when there's nothing to add.
metaobject
meta.request_idstringUnique identifier for the request, for correlating with support.