Replace issues

Changes an issue's lifecycle — resolve, ignore, reopen or assign — and returns the updated issue.

PUT /v1/o11y/sentinel/issues/{id}

Addresshttps://api.hanzo.ai/v1/o11y/sentinel/issues/{id}
MethodPUT
Operationput_o11y_sentinel_issues_by_id
AuthAuthorization: Bearer $HANZO_API_KEY

Changes an issue's lifecycle — resolve, ignore, reopen or assign — and returns the updated issue. Fields left unset are left unchanged.

Callers need the editor role; the runtime's own gate enforces it.

Request

4 fields, body application/json (required).

FieldInTypeRequiredDescription
idpathstringyesID is the issue id.
assigneebodystring—Assignee is who the issue is assigned to.
idbodystringyesID is the issue id.
statusbodystring—Status is the new lifecycle state: unresolved, resolved or ignored.

Response

StatusBodyMeaning
200o11y.O11yErrorIssueOutok
202Approvalheld for approval
defaultproblem-detailsrefused

200 body — 21 fields.

FieldInTypeAlwaysDescription
databodyo11y.O11yErrorIssue—
data.assigneebodystring—Assignee is who the issue is assigned to.
data.countbodyinteger (int64)—Count is how many occurrences have landed on the issue.
data.createdAtbodystring (date-time)—CreatedAt is when the issue was first recorded.
data.culpritbodystring—Culprit is where it came from — the function or route blamed for it.
data.environmentbodystring—Environment is the deployment the issue was seen in.
data.fingerprintbodystring—Fingerprint is the grouping key that puts like errors in one issue.
data.firstSeenbodystring (date-time)—FirstSeen is when the earliest occurrence was recorded.
data.idbodystring—ID is the issue id.
data.lastSeenbodystring (date-time)—LastSeen is when the latest was.
data.levelbodystring—Level is the issue's severity, e.g. error, warning, info.
data.platformbodystring—Platform is the reporting runtime, e.g. go, python, javascript.
data.regressedbodyboolean—Regressed marks an issue that reopened after being resolved.
data.releasebodystring—Release is the version that produced it.
data.resolvedAtbodystring (date-time)—ResolvedAt is when the issue was resolved, if it is.
data.serviceNamebodystring—ServiceName is the service that reported it.
data.statusbodystring—Status is the lifecycle state: unresolved, resolved or ignored.
data.typebodystring—Type is the exception type.
data.updatedAtbodystring (date-time)—UpdatedAt is when the issue last changed.
data.valuebodystring—Value is the exception value.
statusbodystring—Status is "success".

Failure carries the platform error shape — see Errors.

Examples

hanzo o11y sentinel issues set <id>
import { Configuration, O11yApi } from 'hanzoai';

const api = new O11yApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.putO11ySentinelIssuesById({ id: 'id', id: "<id>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import O11yApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = O11yApi(client).put_o11y_sentinel_issues_by_id(id='id', id="<id>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.O11yAPI.PutO11ySentinelIssuesById(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, o11y_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = o11y_api::put_o11y_sentinel_issues_by_id(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.O11yApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new O11yApi(client).putO11ySentinelIssuesById();
curl -X PUT https://api.hanzo.ai/v1/o11y/sentinel/issues/<id> \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "id": "<id>"
     }'

MCP reaches o11y through the o11y tool, which names its 307 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_o11y_autocomplete_aggregate_attributes"
         }
       }
     }'

O11y API · All Hanzo APIs · Interactive reference

Was this page useful?