Operator · Troubleshooting Your Environment

Read the Refusal

Frame 98 of 107

Troubleshooting goca starts with a habit: read the refusal, verbatim, before forming a theory. Every API failure uses one structured envelope:

{ "error": {
    "id": "GOCA-E1427",
    "code": "sort_needs_narrower_filter",
    "message": "subject sorting needs a working set under 10,000 rows",
    "remediation": "add a CA, template or time filter",
    "requestId": "...",
    "docs": "/docs/troubleshooting#GOCA-E1427" } }

Five fields, five uses. The stable id resolves in the embedded troubleshooting chapter and is carried into console and structured logs. The code is what automation keys on — never the English text, which may gain detail between releases. The message names what was refused; remediation names the fix, because goca's refusals are written to be acted on. And the requestId correlates this exact request across the console, the ops log and a support conversation. HTTP status keeps its conventional meaning: 403 is authenticated-but-out-of-scope, 409 is conflict, 503 is a dependency down and retryable.

Most "bugs" in the rest of this section dissolve into a refusal that was paraphrased instead of read.

Now I read the envelope before I form a theory.