MLS Import Documentation Aug 6, 2026 · 4 min read

Avoiding overlapping import tasks

Two tasks matching the same listing give wrong counts and wrong agent assignment. How to split filters so each listing has one owner.

B
Benjamin Levy
Contributor · MLSimport

Two import tasks overlap when the same listing matches both sets of filters. The listing is then imported by whichever task reaches it first and re-claimed by the other, which is how agent pages end up with counts that do not add up and properties that show the wrong office.

The rule that prevents all of it: one listing should belong to exactly one task.

Build filters that cannot collide

  1. Split on something a listing can only be one of. City, county, price band or office are all safe. Two tasks that both import Residential across the same county are not.
  2. Pair include with exclude. If one task imports your own office by ListOfficeMlsId, put that same value into Exclude listings with ListOfficeMlsId on your general market task. The two then cover the market once between them.
  3. Keep one ownership rule per listing. The agent and the WordPress author are stamped by the task that writes the property, so a listing claimed by two tasks gets whichever assignment ran last.
  4. Run one task at a time. Start the next only after the current one has finished or been stopped.
Pro Tip

Price bands are the most reliable split for a market too large for one task, because a listing has exactly one price. Cities overlap through unincorporated areas and inconsistent spellings far more often than people expect.

The hourly sync and a manual run on the same task

This one is handled for you. The hourly sync only processes a task that has fully completed a previous import, so it will not start a second run on a task whose manual import is still in flight. Two hourly runs cannot overlap either, because a run in progress blocks the next one from starting.

That guard has a consequence worth knowing. A manual import that is killed part way through leaves its task marked as still running, and the hourly sync then keeps skipping it. If one task stopped updating while the others kept going, run it manually and let it finish. That releases it back to the schedule.

What overlapping runs actually cause

  1. Counts that exceed the total, for example a progress line reading 156 of 106, because two runs are writing the same counters.
  2. An import completed message while the import is visibly still running, when a shorter run finishes and marks the task done.
  3. Runs that stall during the photos step, where two imports compete for the same memory.
  4. Database deadlocks, when two runs update properties and clear the same theme cache rows at the same time.

None of this deletes listings or loses data. Reconciliation compares the full list of MLS identifiers against your site and never looks at whether a particular run finished, so an interrupted import cannot make the plugin think a listing has left the MLS.

Pro Tip

On a host where imports are slow, lock your scheduled runners so they cannot start on top of each other. Wrapping the cron command in flock is enough, and it removes the deadlocks that appear when a manual run and a scheduled run land together.

Cleaning up after an overlap

  1. Decide which task should own the disputed listings, and add exclude values to the other tasks.
  2. Delete the affected properties from MLS Import Settings, Tools, using the delete tool on a taxonomy that isolates them, such as the property status or office term.
  3. Run the owning task once, manually, and let it complete.
  4. Check the agent or office page and confirm the counts now match.

Frequently asked questions

Is it harmful to have two tasks importing the same city with different statuses?

No, as long as a listing can only satisfy one of them. Active in one task and Closed in another is a clean split, because a listing holds one status at a time. Overlap only matters when the same listing matches both.

How do I tell whether two tasks are overlapping?

Compare the We found counts with the number of properties on the site. If the site holds fewer properties than the tasks report between them, the same listings are being counted twice. Import History filtered by task shows which task last touched a given listing.

Does the agent and office data get fetched again every time a task claims a listing?

No. Once agent or office data has been stored for a property, or a fetch has already been attempted, it is not requested again for that property. Overlapping tasks cost you correctness of assignment rather than repeated API calls.

Can I merge two overlapping tasks into one?

Yes, and it is often the better answer. Widen one task’s filters to cover both scopes, delete the other, then delete the affected properties and re-import so every listing is written once under the surviving rules.

  1. Running a manual import and stopping one
  2. Filtering by agent or office
  3. How the hourly auto update works
  4. Controlling which listings are imported

Send us your task list and the counts you expect, and we will show you where the filters cross.

B
About the author
Benjamin Levy
Writes about MLS feeds, IDX compliance, and running real-estate websites on WordPress at scale.
All posts by Benjamin