Skip to content
Current/ Help Center

Fix a sync conflict between Current and your PSA

6 min read · Updated Aug 11, 2026

A conflict is logged when the two systems disagree about a field and the ownership map can't settle it silently — for example, a record edited in both systems between polls, or a Current edit that your PSA flatly rejected. Each conflict records the entity, the field, and the values involved. A push failure stores your Current value (there is no PSA value — the write never landed); an auto-resolved row stores both your value and the PSA value that overrode it. Nothing is ever swallowed. Everything on this page works identically whether your PSA is ConnectWise, Autotask, or HaloPSA — the panel and its buttons are named for your provider.

Why conflicts are rare

Current doesn't guess who wins. Each field has a declared owner, and the sync respects it in both directions. On a pull, PSA-owned fields always win in Current; Current-owned fields survive every pull. Conflicts only arise in the narrow gray zone where both sides legitimately changed the same thing.

FieldOwnerWhat that means in practice
Project name, status, budgetYour PSAThe PSA's value always wins on a pull. Change it there.
Project healthCurrentCurrent's own signal — your PSA never touches it.
Task statusYour PSAThe PSA is the record of truth for where a task stands.
Task name, and which phase it sits inAutotask: shared. ConnectWise and HaloPSA: your PSAOn Autotask both are two-way with two-way sync on: rename a task or drag it to another phase in Current and the change is pushed, and the later edit wins on the next pull. On ConnectWise and HaloPSA both are read-only here — change them in your PSA.
Task start and end datesCurrentScheduling is Current's job — dates are pushed out to your PSA, not pulled over.
Critical-path flag, milestonesCurrentComputed here; there's no PSA equivalent to overwrite them.

For the full picture of which side owns what, read "Our methodology: your PSA stays the source of truth" and the field-mapping reference for your provider — "Autotask sync: the complete field-mapping reference" or "ConnectWise sync: the complete field-mapping reference."

The two kinds of conflict

The Conflicts panel on the sync health page has two tabs, and they mean genuinely different things.

  • Open — an edit you made in Current that never reached your PSA. The PSA rejected the write (a validation rule, a permission, a field it wouldn't accept), so the row shows only your Current value: "Current has X — this never reached your PSA." There is no PSA value to compare it against, because the write never landed. These are the ones to act on, and they're counted in the Outbox as undelivered work.
  • Auto-resolved — a record of where the two sides disagreed and the sync settled it without a person. When two-way sync is on, the sync only reopens a field your PSA has genuinely changed since Current last read it, so a time entry or a note on a task is not enough on its own to disturb anything you edited. Once a field has genuinely changed on both sides, your PSA's value wins unless your Current edit is provably later than the last activity your PSA recorded on that task. An edit that Current delivered to your PSA no longer re-enters this contest at all: after each push, Current checks what your PSA actually stored and records the delivery, so editing the same field again shortly after a successful push can no longer be undone by the next sync. That is deliberate: no PSA reports when one specific field changed, only when the task last changed, so when the two can't be ordered Current keeps your PSA's value rather than overwrite a change it can't prove is older. Nothing is lost. The value you had is stored on the row next to the value the PSA set, so you can put it back. When your Current edit is the provably later one it simply stays in Current and there is nothing in this tab to show, because nothing of yours was overridden; your PSA keeps its own value until somebody changes it there or you send the field across from the task. This tab also covers task dates the PSA changed that an earlier sync recorded but never applied: if a start or end date you set in Autotask kept showing the old value in Current, the PSA's date is now applied automatically on the next sync (as long as nobody edited that date inside Current), and the correction shows here with Restore my value.

Resolve an open conflict

  1. 1
    Open Integrations → your PSA's card → Sync details, then scroll to Conflicts
    You need to be a Tenant Admin — Sync details only shows on the card for admins. Each row shows the record (linked, so you can open it), the field, the value that failed to reach your PSA, and when the conflict was logged. Newest first. When there are open conflicts, the card also shows an "N open conflicts — review" link to the same page.
  2. 2
    Retry push — the usual answer
    This re-sends the record's current Current values through the same path the original edit used. If the rejection was transient, or you've since fixed whatever your PSA objected to, this delivers the edit and the conflict clears itself. Current stays the source of truth for the field.
  3. 3
    Accept the PSA's value — when your PSA is right
    The button is named for your provider — Accept Autotask or Accept ConnectWise. It re-pulls the record's whole project from your PSA so the PSA's values actually land in Current, then closes the conflict. Your Current value for that field is replaced.
  4. 4
    Dismiss — when neither applies
    Closes the conflict and changes nothing, anywhere. Use it when the record is obsolete or the disagreement no longer matters. Neither side's value is changed and nothing is pushed.
  5. 5
    When one field conflicts across many records
    That's an ownership question, not a data question — decide which side owns the field and stop editing the other. There's no bulk resolve: each row still has to be cleared individually with Retry push, the Accept button, or Dismiss.
Note
Not every field has a retry path
Retry push re-sends only the fields it has a retry path for — on tasks the description, notes, estimated hours, and the start and due dates; on tickets the description and due date. Other fields (status, task type, department, priority) are changed from the task itself, not from this panel — so here the options are the Accept button or Dismiss. See "What Current writes back to Autotask (and when)" or "What Current writes back to ConnectWise (and when)."
Tip
"Fixed Work" tasks and due dates
In Autotask, a "Fixed Work" task has its due date calculated from its estimated hours, so it won't hold a due date you set in Current — Autotask accepts the push but keeps its own computed date. When you Retry push a due date to one of these, Current now automatically switches the task to "Fixed Duration" in Autotask first (which makes the dates authoritative — reversible, and how Current already schedules), then sets your date, so it sticks. You don't have to do anything; the task type just changes to Fixed Duration.
Tip
Weekend and holiday due dates move to the next business day
Autotask schedules work on business days, so a due date that lands on a Saturday, a Sunday, or a company holiday is stored as the next working day — it accepts the push, then quietly keeps the day it chose. A date set on Labor Day Monday comes back as the Tuesday. This used to surface as a permanent red date-push conflict. Current now recognizes the business-day move, checking your workspace's holiday calendar (which syncs from Autotask itself) to tell a genuine roll-forward from a real disagreement, adopts Autotask's stored date as its own so both systems agree, clears the conflict automatically, and names the move — for example "stored Mon, Nov 2 instead of Sat, Oct 31." A stored date that skips past the first working day, or moves backward, is still a conflict. If the work has to be finished before the break, set the due date to the last working day before it.
Heads up
Accepting the PSA's value re-pulls the whole project
It doesn't cherry-pick one field — it re-runs the project's pull so the PSA's values win across that project's records. That's what makes it actually move data instead of just stamping the row, but it means any other un-pushed Current edit on the same project's PSA-owned fields is refreshed at the same time. If you only wanted one field back, use Restore my value on the auto-resolved tab instead.

Restore a value your PSA overwrote

The Auto-resolved tab lists the last 14 days of fields where the PSA's newer change beat a Current edit (up to 100, newest first). For task fields with a write path — description, estimated hours, status, task type, department, and priority — a Restore my value button puts your value back in Current and pushes it to your PSA in the same action.

The same overrides also surface where the work happens. Open the task and its panel shows a banner naming each field your PSA changed, with Re-apply mine to put your value back and push it, and a second button, named for your provider, that accepts their value and stops the row asking again. The banner only lists overrides that still stand: a field you had left empty is never raised, and neither is a row the task has since moved past, because re-applying a value the task no longer holds would push a stale value out to your PSA. A phase move is the one row with no button on either surface — drag the task back to the phase you wanted on the project overview, which pushes the phase across the same way the original move did.

Tip
Restore writes both sides on purpose
Restoring writes both sides on purpose: your value goes back into Current AND is pushed to your PSA. If it only wrote locally, the next pull would re-apply the PSA change you were undoing. So Restore needs two-way sync switched on. With it off, Current says the value was not written, and leaves the row exactly where it is instead of reporting a push that never happened — turn on “Projects & tasks · push edits back” under Integrations and use Restore again.

Symptom → cause

What you seeMost likely causeWhat to do
"This never reached your PSA" on a task's datesAutotask calculates a "Fixed Work" task's due date from its estimated hours and won't accept a manual one; or the dates fall outside a phase or project windowRetry push. Current now auto-switches a Fixed Work task to "Fixed Duration" (so your date sticks) and widens a too-small phase/project window for you. If a date still can't be stored, Retry push names the real reason instead of a generic failure.
The same field conflicts on dozens of recordsBoth systems are being edited for the same purposeDecide which side owns the field and stop editing the other, then clear the rows one at a time.
No Retry push button on the rowThe field has no retry path from this panelUse the Accept button or Dismiss (or change the field on the task itself).
Retry push says the fields are now empty in CurrentThe record changed after the conflict was logged; there's nothing left to sendAccept the PSA's value or Dismiss.
An edit you made "disappeared"Somebody changed that same field in your PSA and your edit couldn't be proven to be the later one, so the PSA's value won — check the Auto-resolved tab, or the banner on the task itselfRestore my value, which re-applies it in Current and pushes it back.
A conflict on a record you deleted in your PSAThe PSA counterpart is goneDismiss, then check "Removed in your PSA" on the sync health page.
Retry push says the task's project isn't linked to your PSAThe project is Current-native and has no counterpart to push toDismiss. See "Project modes: PSA-synced or Current-native."
Note
Conflicts self-heal when the push lands
You rarely have to close a push failure by hand. The next successful push of the same record — from Retry push, or just from rescheduling the task again in the Timeline — resolves the old conflict automatically, and the project's sync badge goes back to green. The Accept button is surgical: it reads just that one record fresh from your PSA and applies exactly the conflicted field — and if the record turns out to be deleted in the PSA, the conflict closes itself and the row is flagged under "Removed in your PSA." If a badge is stuck red with no open conflicts, run Reconcile from the sync health page.

Related reading: "Reading the sync health dashboard (and fixing a stale sync)" for the rest of the page, and "PSA rate limits and dead-letter jobs" for failures caused by throttling rather than your data.

Was this helpful?