Skip to main content

IDEs

IDE Integration Troubleshooting

When an editor can't reach Verdictan, first make the same request from a terminal. If the terminal works, the problem is in the editor's settings, and you compare them value by value. Model requests and MCP tools fail independently, so work out which one is failing first.

Before you start​

  • A shell on the machine that runs verdictan gateway run.
  • The client API token the editor uses.
  • A CLI session with events:read, from VERDICTAN_API_TOKEN or verdictan auth login.

Identify the failing path​

PathEndpointTokenHow failure shows
Model traffichttp://127.0.0.1:41002/v1, or a published model hostnameClient API token, as a Bearer tokenAn HTTP status in the editor, or no event
MCP toolshttps://<published-hostname>/mcpClient API token, as a Bearer tokenAn MCP status or JSON-RPC error in the editor's MCP log

If MCP connects but no model events appear, you only set up MCP. It adds tools and does not change where the editor sends model requests. See the IDE Integration Overview for what each editor supports.

Verify the gateway from the shell​

On the same machine as the editor:

  1. Check that the process is up:

    curl --fail http://127.0.0.1:41002/healthz
  2. List models with the editor's token:

    export VERDICTAN_CLIENT_TOKEN="<client-api-token>"
    
    curl --fail http://127.0.0.1:41002/v1/models \
      -H "Authorization: Bearer ${VERDICTAN_CLIENT_TOKEN}"
  3. Send the short model request with the same token and model. Health and model listing can succeed while the upstream call fails.

If the model request works, compare its exact URL, token, and model with the editor's settings.

Model endpoint failures​

SymptomCauseFix
Connection refused on port 41002The gateway isn't running, or listens elsewhereStart it as in Gateway Setup for IDEs, and check /healthz.
401 UnauthorizedThe token is not an active client token, or the editor didn't read the variableCheck the token in the Console, and start the editor from a shell that exports it. Never use the gateway runtime token.
403 ForbiddenA role, binding, model, provider, budget, or publication limit on the token excludes the requestCompare the token's limits with the model and gateway the editor uses.
404 Not FoundThe editor builds a URL the gateway doesn't serveUse the /v1 base in a base-URL field, and the full route in a full-URL field.
The editor rejects the modelThe ID doesn't match a provider targetUse an id from the authenticated GET /v1/models response.
The token went to the vendorThe editor's model client still uses the vendor's base URLPoint the base URL at the gateway, then rotate the token.
Requests fail through HTTP_PROXY or HTTPS_PROXYThe gateway is not a forward proxyRemove the proxy setting, and set a custom base URL in the model client.

MCP endpoint failures​

SymptomCauseFix
mcp_publication_requiredThe URL is not a published agent hostnameUse the publication hostname, not localhost:41002 or the control-plane API.
401 with missing_api_key or invalid_api_keyNo Bearer token, or one that is not a vdt_ Verdictan tokenSend an active client API token.
403 with mcp_disabled_for_agentMCP is turned off in the agent's resolved configurationTurn MCP on in the agent or gateway configuration, and reconnect.
The server isn't listedThe editor can't read the variable in its MCP config, or the JSON is invalidStart the editor from a shell that exports the variable, and validate the JSON.
The server is listed but has no toolsTool authorization, enabled tools, or transport supportRead the editor's MCP log, then check the token's permissions and the enabled tools.
Opening /mcp in a browser fails/mcp requires MCP transport headers and messagesTest with an MCP client instead.

Missing events​

A matching event proves a request went through Verdictan; a missing one doesn't prove it bypassed the gateway. Send one request from the editor, run verdictan events tail --since 10m after it, and check in this order:

SymptomCauseFix
No events found. for every requestThe gateway doesn't deliver events, or its runtime token is wrong or inactiveCheck VERDICTAN_API_TOKEN in the gateway's environment, and that it runs connected with --agent.
Other gateways' events appear, but not this one'sThe CLI profile queries another organization, API URL, or regionCompare verdictan auth whoami and verdictan regions current with the gateway's environment.
Events arrive late or outside the window--since or a filter excludes themWiden --since, and drop --event-type, --verdict, and --gateway-id.
The editor gets a reply but no event appearsThe editor uses another base URL or modelCheck the active base URL and model in the editor, and compare with a curl request.
Chat events appear, inline completions don'tThe inline feature uses a vendor endpoint or another adapterCheck which model or adapter the inline feature uses.

Policy and latency problems​

If the editor still uses earlier rules, check configuration sync status in Gateways. With CLI 0.1.14 or later, deploy the corrected file through the agent. Wait for In sync on gateway 0.1.14 or later. Then repeat the editor request and examine its decision.

SymptomCauseFix
A request is blocked or redacted unexpectedlyA control in the chain matchedRead the verdict and policy in the event, change only that control, and run verdictan policy lint and verdictan policy test before restarting.
Every request is blockedA policy, token limit, budget, or provider errorRead the response code and policy reason before changing settings.
Responses are slowAn output control holds the response, or the provider is slowCompare /healthz and /v1/models timing with one model request. Keep output controls off the inline chain; see Configure Policies for IDE Traffic.
The stream starts latepii-detector holds the whole response to redact itExpected with output redaction. Use non-streaming if the client can't handle it.

Don't turn off every control to fix one false positive.

Region problems​

SymptomCauseFix
Region-scoped results are emptyThe CLI queries a region the gateway doesn't useRun verdictan regions current, then choose the gateway's region with --region or your profile.
The published hostname resolves to another regionThe publication and the gateway configuration disagreeCompare the hostname, gateway configuration, and CLI profile. verdictan regions current doesn't change a publication.

Next steps​