Skip to content
Current/ Help Center

Dates wrong or tasks unscheduled? Use the Debugger

7 min read · Updated Jul 18, 2026

If a project's tasks have no dates, or the dates no longer line up with the dependency chain — the usual aftermath of a bulk import, a template build, or a big PSA sync — you don't have to drag bars around one by one. Open the project and use the Project Debugger. It lists every deduction that pulled the project's score below 100. Most rows come with a fix you can run from the panel (Recast schedule, Assign owners, Review conflicts); Budget burn just jumps you to the budget panel, and Project past due is advice only — there is no button.

The fix for dates is Recast schedule: it re-derives start and end dates for the whole project from your dependencies, against the working calendar (weekends, tenant holidays and the assignee's time off), shows you every move it wants to make, and only writes when you confirm.

Where the Debugger lives

Go to Projects and open the project. The Project Debugger panel sits near the top of the project page, just under the project summary. Its header reads "Every Current Score deduction, with its fix" and shows the project's score out of 100 on the right.

  • It is visible to super admins, tenant admins and project managers only. Engineers and read-only partners don't see the panel at all, and partners never receive project scores.
  • If the project scores a clean 100, the panel says "Nothing to fix — full marks."
  • Each row shows the deduction (for example −16), the factor name, a plain-English detail line, and the fix.

The diagnosis ladder: read the deductions first

Start with the panel, not the Timeline. The score is built from six factors, so the row that lost the most points is almost always the real problem. These are the exact weights.

FactorWhat it countsPoints lostCap
Overdue tasksOpen tasks whose due date is in the past8 each40
Unassigned workOpen tasks with no Current owner and no PSA assignee3 each15
Unscheduled tasksOpen tasks missing a start or an end date2 each10
PSA sync conflictsUnresolved conflicts on this project5 each15
Budget burnBudget over 100% consumed (20) or 90–100% (10)10 or 2020
Project past dueProject due date passed and progress is under 100%1515

The score is 100 minus the total: 80 and above reads as on track, 55–79 at risk, below 55 off track. Only factors that actually deducted points appear, worst first.

Note
Sync conflicts are a separate repair path
The "Review conflicts" button jumps to Sync Health. Resolve conflicts there before recasting — see "Fix a sync conflict between Current and your PSA".

Fix the dates: Recast schedule

Overdue tasks and Unscheduled tasks both offer a Recast schedule button (the count in brackets is how many tasks would move). It runs the same scheduling engine as the Timeline's "Apply cascade", so the recomputed dates agree — but the Debugger also places open tasks that have no dates at all, which the Timeline's cascade never touches, so the two can propose different numbers of moves.

  1. 1
    Open the project and find the Debugger
    Projects → open the project. The panel loads the full dependency graph and time-off calendar in the background; while it does, the button reads "Analyzing…".
  2. 2
    Click Recast schedule
    A preview opens: "Recast schedule — N tasks will move". Every task is listed with its stored start and end struck through and the new dates beside them.
  3. 3
    Read the "Needs a date" list, if there is one
    Open tasks the engine cannot place — no dependencies and no dates to work from — appear in an amber block underneath. Click one to open its task drawer and set a start and due date by hand. Current will not invent a date it can't justify.
  4. 4
    Apply the moves
    Click "Apply N moves" to write them. The button stays disabled if nothing would actually move. Cancel changes nothing.
  5. 5
    Confirm the result in the toast
    A success toast confirms how many tasks were rescheduled and, on a PSA-synced project, how many dates were pushed to your PSA.

What the recast engine actually does

  • It places every task at its earliest date that satisfies its predecessors, honouring all four dependency types (FS, SS, FF, SF) and any lag or lead you set.
  • It skips weekends and your tenant holidays, and it slides a task past its assignee's hard absences — PTO, holiday and blocked days. A soft "busy" calendar entry (a 30-minute meeting) does not make the day non-working.
  • It reads the whole tenant's task graph, not just this project, so a cross-project dependency still constrains these dates.
  • It fills in dates for open tasks that are missing them but are reachable through a predecessor. A completed task that has no dates is left alone — but a completed task that does have dates is still re-derived from its dependencies and will appear in the preview if it drifted, so read the move list before you apply.
  • Tasks with no predecessors keep the dates you gave them — a recast doesn't gratuitously rewrite a schedule you set by hand.
Heads up
Applying a recast writes to your PSA
On a PSA-synced project, every moved task that is linked to a PSA task is pushed back to your PSA after it saves in Current. Current-native projects never trigger a PSA call. Review the preview list before you apply — see "Project modes: PSA-synced or Current-native".

If the recast doesn't do what you expected

What you seeWhat it meansWhat to do
"Dates already follow the dependencies — open the task to reschedule it by hand."The stored dates already match the dependency-correct schedule. The overdue tasks are genuinely late, not drifted.Open the tasks and move them yourself, or extend the project due date.
A "Needs a date" listThose open tasks have no dependencies and no usable dates, so the engine has nothing to derive from.Click each one and set a start and due date, or give it a predecessor.
A task you expected to move stayed putIt has no predecessors, so it is not driven by the chain.Add the dependency — see "Task dependencies: types, lag, and the dependency map".
"Saved in Current — N tasks rescheduled. X dates didn't reach your PSA yet"The new dates are safely stored in Current; the push to your PSA failed (usually a connection or permission problem).Use the Retry button in the toast. If it keeps failing, check Sync Health.
"Your PSA accepted the change but did not store the new end"Current read the record back after the push and the PSA still shows the old date. On Autotask this usually means the date was clamped against its phase or project window — Current widens those windows automatically (project first, then phase) and re-pushes, so this toast should be rare. Every push is verified by read-back on ConnectWise too.If it still appears, the toast names the cause: a PSA-side predecessor drives the task's schedule (adjust the dependency there) or the task is complete in the PSA (reopen it), then recast again.
Tip
Circular dependencies stop scheduling dead
If a dependency chain loops back on itself, the engine can't order the tasks and leaves every date where it found it — so a recast will look like it did nothing. Current blocks the loop when you create it ("That would create a circular dependency"), so this is rare, but if you suspect one, check the dependency map and remove the offending edge.

The other two fixes in the panel

Unassigned work expands into the list of open tasks with no owner. Click any task to open its drawer and pick an assignee. Above the list, Current shows up to three headroom chips — for example "Alex has 6h free this week" — computed from each person's capacity, their booked work and their time off over the next 7 days. Only people with at least 2 free hours are listed, most room first.

Budget burn scrolls you to the project's budget panel. Project past due tells you the truth: adjust the project due date, or complete the project and run its close-out. The score refreshes on the next health check. For dragging bars, back-scheduling from a deadline and the critical path, see "The Timeline view: drag to reschedule, and back-scheduling" and "PTO and availability-aware scheduling in the Timeline".

Was this helpful?