Troubleshooting
Resolve authentication, project selection, missing telemetry, asynchronous fix states, and MCP retry problems.
CLI authentication fails
Run prilog login and finish the browser flow. Confirm the browser uses the same Prilog account as the CLI. JSON commands do not start interactive login; authenticate before invoking --json.
If PRILOG_ACCESS_TOKEN is set, it overrides the saved login. Use a current operator-issued token with access to the intended workspace, or remove the override and log in normally. An environment token needs an explicit --project-id.
Use prilog config path to locate the configuration and prilog status to inspect account and project identity. Avoid posting configuration files containing tokens in issue reports.
Wrong project or repository
Run prilog projects, then prilog use-project <project-id>. Select by UUID if names are duplicated. For scripts, put --project-id before the command.
Run prilog add-repo in the intended Git repository and complete the GitHub authorization and service setup flow. Ensure the Prilog GitHub App has access to the repository and the selected branch is correct.
For a public GitHub issue import, the connected repository must be your fork of the issue's upstream, configured on the upstream default branch. The issue must be open and public; pull request URLs are rejected.
No monitoring data arrives
- Confirm that you copied the full DSN from the intended service's monitoring source. A missing DSN disables the SDK.
- Initialize the SDK before instrumented application imports, start the application, and allow time for the startup log and span to export.
- Check outbound access to the ingest hostname. For a browser, check CSP
connect-srcand any network or CORS errors in developer tools. - If credentials were rotated or the source disconnected, update the old DSN.
- Flush in your graceful-shutdown handler, especially for short-lived scripts and jobs.
- For custom OTLP exporters, verify HTTP transport, the signal paths, content type, and
X-Prilog-OTLP-Tokenheader. See OTLP.
Logs and traces do not correlate
Pass the active request context into logging and asynchronous work. Preserve trace IDs and parent relationships across service boundaries, and use a different service.name for each component.
For browser requests to another origin, configure tracePropagationTargets and allow traceparent, tracestate, and baggage in the API's CORS policy. See the browser tracing guide.
The diff is empty
Analysis is asynchronous. Check the error's current state in Prilog or through get_error in MCP. prilog list can filter by state:
pending— waiting to be processed.processing— analysis is running.completed— analysis finished; inspect its outcome, which can contain no code change.failed— analysis failed; inspect the failure details.skipped— stopped before analysis.
Use prilog diff <error-id> or MCP get_diff after checking state. Do not claim a fix or PR exists based only on a successful queue response. Review the generated diff before publishing.
MCP access or retry errors
Start with list_projects and use only the IDs returned for that connection. Reconnect from the client if a project or required permission was not included in consent. Revoke an obsolete connection in Settings → Account → Connected apps.
Write tools require an 8–128 character idempotency key. Reuse the same key and exact arguments when retrying the same action. Check state before retrying an uncertain or interrupted mutation. Contact support if the operation needs reconciliation rather than starting it again under a new key.
The hosted MCP connector cannot read local file paths. Supply selected text through ingest_logs or use prilog ingest <file> in a terminal.
Plugin is missing from a directory
The Claude and Codex directory submissions are awaiting approval. Use the CLI or a supported direct MCP connection in the meantime. Public listing availability is not required to use an existing Prilog account.
Get help
Check system status. For account, project, or connection problems, email support@prilog.ai with the affected project/error ID, timestamp, command or tool name, and a sanitized error message. For CLI bugs, use the public issue tracker.
