Skip to content

Report a problem and follow support cases

When an Extrovert operation behaves unexpectedly, your agent can submit a small, structured report with the evidence still in context. You can also open Support in the project console and choose Ask for help.

Feedback records what you wanted, what happened, what the agent tried and the result. It does not promise a response. Support cases add a tracked conversation with Extrovert. A case can link an existing report without copying its contents. Extrovert may separately create a private engineering issue after human review; that does not automatically resolve the customer case.

Try: “Report this unexpected Extrovert error.” For a tracked response, say: “Open a support case about this problem.” Later: “Check Extrovert support case SUP-123.”

New agent and connection presets include Report problems and follow own cases (support:submit). It lets the agent file feedback and support cases, read its own reports and published case updates, and reply to, resolve or reopen its own cases. It also permits reading the project’s reporting policy. Cases explicitly shared with the same identity remain accessible within its resource limits.

Other people’s feedback and cases require a deliberate grant:

PermissionAccess
support:submitFile and follow your own feedback and cases. Included by default.
support:readRead other feedback and cases within the authorized project or organization and resource limits.
support:writeFile reports and reply to, resolve or reopen other cases within those same limits.

The Project manager preset includes all three permissions for that project. Read permission alone cannot update a case. Selected-inbox access never grants a view of all project reports. Full account control requires explicit support scopes.

To opt out, uncheck reporting in connection consent or the key’s custom permissions. For API and SDK callers, an explicit scopes list replaces the defaults: omit all support scopes to disable reporting. Delegated credentials must stay within the parent’s granted scopes. To change existing access, revoke the old connection or key and authorize a replacement with the intended permissions. Humans can also use Support in the project console.

Reports retain the submitting identity across credential rotation. Dedicated agents use their stable agent identity; personal assistants act as their authorizing human. Human organization administrators can manage participants and read organization cases. Revoked access takes effect on the next request.

Reports contain a short goal, observed and expected behavior, impact, up to 20 summarized attempts and up to 20 accessible resource references. Optional versions are supplied only when known. The MCP/SDK supplies its own package version; the API records its observed build separately. Request bodies are limited to 64 KiB.

Do not submit passwords, tokens, transcripts, mail bodies, headers, attachments, recipient lists, local paths or unrelated personal information. The API rejects unknown fields and replaces recognized credential patterns, but redaction is not a guarantee that arbitrary prose is free of sensitive information.

Raw reports and new conversation entries remain untrusted. A human reviews a specific brief before staff tools can use it. A separate human decision publishes an exact customer reply or engineering issue. Synthetic eval exports also require human review; reporting does not start model training or automatic code changes.

Automatic feedback is off by default. A human organization admin can opt full integrations in through Support -> Automatic feedback. This permits limited reports about unexpected task failures and workarounds, not automatically opening cases. Delegated account control cannot change this policy.

Assistant connections always require an explicit reporting request, regardless of the organization setting. Ordinary empty results, expected validation errors and pending email approval are not automatically bugs.

Ask “Check my support cases.” The agent calls list_support_cases {} and receives own/shared cases across authorized projects, with status, version, a console link and the latest published support update. Search older cases without conversation memory. get_support_case {case_id} returns the full latest update; list_support_case_events {case_id} reads the paginated conversation.

Ask “Report this and ask for help.” create_support_case needs a title and description. Extrovert supplies the authenticated project when unambiguous; if there are several possible destinations, it returns authorized choices. get_support_context discovers those choices without project administration access. Explicit requests need no preliminary settings check. Impact defaults to unknown.

Ask “Add this clarification.” reply_to_support_case needs only the case ID and text. Resolve/reopen require the current version; conflicts preserve the unsent text and return current state. Project-prefixed calls remain available. Ordinary support work needs no project-ID copying, shell-generated UUID, or broader grant. MCP returns equivalent information in text and structured output.

StatusMeaning
ReceivedYour case was recorded. It has not necessarily been confirmed as a bug.
WorkingExtrovert is investigating or responding.
Waiting on youExtrovert published a question or requested more information.
ResolvedA resolution was recorded. Confirm it worked or reopen with a reason.

Case emails show only a number, status and console link. Human participants can change email preferences in notification settings. Push is off by default for support. Reply in the case conversation; email reply handling is not yet available.

A comment on a resolved case does not reopen it. A fixed status or support reply never authorizes a duplicate send. Check the original submission’s delivery state before deciding what to do with an uncertain email operation.

Use /v1/support-cases, /v1/feedback, /v1/support-settings, and GET /v1/support-context. Existing /v1/projects/{project_id}/... routes remain compatible. Context lists default to own/shared reports. Explicit view=all_accessible requires support:read and preserves resource restrictions.

const cases = await extrovert.support.cases.list();
const supportCase = await extrovert.support.cases.create({
title: "Reply remains blocked after acceptance",
description: "The earlier submission was accepted, but a follow-up reply remains blocked.",
});
await extrovert.support.cases.reply(supportCase.id, {
body: "Reloading the active connection resolved the problem.",
});

The TypeScript SDK, MCP and CLI generate retry IDs before transmission; supplied IDs remain supported. Raw HTTP callers must supply a UUID client_id. Keep the exact request and IDs for retries. SDK errors expose recovery_request, and MCP returns it in both text and structured output. If the entire response is lost, check existing reports before a new create. A separate invocation is a new write. Reusing an ID with changed content returns 409 idempotency_conflict.

API lists default to 25 records, MCP lists to 10, with a maximum of 100. Follow opaque next_cursor when has_more is true. Latest-update excerpts explicitly identify truncation. Feedback returns accessible linked cases and says when that bounded link list is truncated.

Feedback: 20 reports per reporter and 200 per organization per day. Cases: 10 per reporter and 50 per organization per day. Replies: 60 per reporter and 300 per organization per hour. Exact retries do not consume another allowance. Automatic reports with the same operation/error/resource/version fingerprint are combined for 24 hours; explicit reports remain separate.

Unlinked feedback expires after 90 days. Open cases stay available. Resolved cases and linked evidence expire after one year; reopening cancels that expiry. Human organization admins can delete standalone feedback or resolved cases. Derived private evidence is deleted with it, except evidence still needed by another case. Only approved synthetic fixtures can remain independently. Backups age out within 30 days. A retry of a deleted report returns 410 support_record_deleted.

If reporting fails, keep the summary for the human and use the console when available. Do not recursively report the reporting failure or retry an uncertain mail send just to reproduce it.

Task commands share the MCP handlers and accept optional --project, --json, and bounded JSON input through --input-stdin:

Terminal window
extrovert support cases list --json
extrovert support cases get CASE_ID --json
extrovert support cases create --input-stdin --json
extrovert support cases reply CASE_ID --input-stdin --json
extrovert support feedback list --json

Call agent_context or whoami through the connection answering this conversation. Its executing package/profile version, transport, build, catalog digest and runtime instance are distinct from the hosted release. Missing public metadata does not hide local runtime facts. A separate CLI reports the active MCP runtime as unknown.

After updating local MCP, reload the active connection. In Hermes, use /reload-mcp, then verify another MCP call in the same conversation. Preserve pins, selected channels, credentials, profiles and edited skills. Hosted MCP should recheck the existing connection first and refresh its catalog only when needed. A tool count, separate probe or changed load-balanced instance ID is not proof of a refresh. Historical runtime evidence in a ticket is labelled with its source and observation time; it does not establish the current connection. See keeping your agent current.