# Troubleshooting
URL: https://pro.rv-grid.com/guides/gantt/reference/troubleshooting/
Source: src/content/docs/guides/gantt/reference/troubleshooting.mdx
Description: Common Gantt setup and scheduling issues.
Common checks:

- Missing `ganttCalendars` or mismatched `calendarId`.
- Duplicate IDs in tasks/dependencies/resources/assignments.
- Dependency points to missing task ID.
- A circular dependency chain such as `Setup load balancer -> Configure firewall -> Setup load balancer`. The scheduler reports this as `dependency-cycle`; inspect the issue's `taskIds` and `dependencyIds`, then remove or change one of the links.
- Invalid task date ranges or malformed constraints.
- No visible timeline because viewport/zoom span does not include task dates.

## Task Jumps While Dragging

If a task appears to jump during drag or resize, first check for dependency validation issues. Automatic tasks normally clamp to the earliest date allowed by their predecessors. A circular dependency cannot produce a valid predecessor order, so RevoGrid reports `dependency-cycle` and leaves dependency clamping disabled until the cycle is fixed.

Use the scheduling result passed to your diagnostics flow to locate the invalid links:

```ts
const cycleIssue = schedulerResult.issues.find((issue) => issue.code === 'dependency-cycle');

if (cycleIssue) {
  console.table({
    tasks: cycleIssue.taskIds.join(', '),
    dependencies: cycleIssue.dependencyIds.join(', '),
  });
}
```

Validation and diagnostics are produced by:

- `engine/scheduler-engine/validation.ts`
- `engine/scheduler-types.ts`
