Troubleshoot imports
Diagnose source access, project discovery, job progress, missing results, and apparent duplicates.
An import crosses three boundaries:
Source account and region
↓
Selected source project and time window
↓
Target Neatlogs project and import jobIdentify which boundary failed before reconnecting or starting another job.
Imports live under Settings → Project → Trace imports. The target is always the project selected in the workspace switcher, so confirm it first. See Import traces for setup.
Check who can act
| Action | Who can do it |
|---|---|
| Connect, re-verify, or disconnect a source | Organization owners and admins. Source connections are shared across the organization. |
| Start, pause, resume, or cancel an import job | Project admins of the target project (organization owners and admins are always project admins) |
| View import jobs | Anyone with access to the project |
The controls stay visible to everyone, but the request fails for other roles. If an action is rejected with an admin-access error, ask an organization owner or admin, or a project admin, to run it.
Confirm the source credential
Provider requirements differ:
| Source | Check |
|---|---|
| Langfuse | Public Key and Secret Key from the same project, plus the matching Region (or Self-hosted with its URL) |
| LangSmith | API Key and the Region that issued it |
| Braintrust | API Key and the Region that issued it |
| Raindrop | A Read API Key (the ingest write key does not work) and the Project slug (default for Production) |
| Laminar | Project API Key and a reachable Base URL for self-hosted sources |
| Phoenix | Base URL of the correct Cloud space (or public self-hosted instance) and an API Key for it |
Stored credentials cannot be edited. After a key is rotated, revoked, or moved to another account, Disconnect the source and connect it again with the new key. Re-verify re-checks the key that is already saved.
Do not send raw credentials to support.
The connection succeeds but projects are missing
A valid key may still be unable to list the expected project.
Check:
- the external account currently connected;
- organization and project membership at the source;
- key scope (a project-scoped Langfuse key shows only its own project);
- selected region or base URL;
- for Raindrop, the Project slug: Raindrop cannot list projects, so the import offers the one slug you entered.
The job failed or appears stalled
Open the source under Trace imports and preserve the job's status, the message in its Recent issue box, and the timestamp.
Check:
- source service availability;
- credential expiration or revocation;
- region and base URL;
- whether a self-hosted endpoint is reachable over HTTPS from the public internet;
- selected time window;
- source rate limits;
- whether the source can report a total.
A running job without a known total shows indeterminate progress. Lack of a percentage alone does not prove that it stalled. Compare the Traces found, Ready in NeatLogs, Still processing, and Failed counts over a few minutes.
Pause, resume, cancel, or restart
| Action | Use it when |
|---|---|
| Pause | You need to stop work without discarding saved progress |
| Resume (paused job) or Retry import (failed job) | The blocker is resolved and the job can continue from its saved progress |
| Cancel (one-time import) or Stop syncing (recurring sync) | The source, target, or window is wrong |
| Run another import | You intentionally need another source project or window |
Already-imported traces are skipped automatically, so an overlapping window does not create duplicates. Still avoid repeatedly starting new imports while an existing job is processing the same source and window.
The job succeeded but traces are missing
Confirm:
- target Neatlogs project (the project that was selected when the job started);
- source project;
- imported time window;
- dashboard time range;
- Workflow and Tags filters;
- whether the source contained traces in that period.
Imported traces carry a source badge (the source's icon and name) in the Tags column. There is no separate source filter in the trace list.
Imported timestamps reflect the original evidence, not the import completion time. Widen the dashboard time range to cover the imported window.
Investigate apparent duplicates
Similar traces are not always duplicates. They may be:
- separate runs with similar inputs;
- imports of the same traffic from different source projects;
- native and imported copies of the same application traffic;
- retried source executions.
Compare source badge, source project, trace ID, timestamps, and execution content before deleting or reimporting anything.
Import processing builds each imported trace ID from the source, the target project, the source project, and the source trace ID, and it skips traces that are unchanged since the last run. Re-importing the same window therefore updates changed traces instead of duplicating them. It cannot deduplicate native and imported copies of the same execution.
Frequently asked questions
Can I import and instrument at the same time?
Yes. Source badges distinguish imported and native traces. Watch for overlapping coverage of the same executions.
Can Neatlogs reach a private source endpoint?
No. Self-hosted base URLs must use HTTPS and resolve to a public address. Private, localhost, and reserved addresses are rejected, including after a redirect.
Will resume start over?
No. A paused or failed job continues from saved progress.
What should I send support?
Source, target project, source project, time window, job status, the Recent issue message, and timestamp. Do not send credentials.
