   def maybe_upload(module) do
     list = Enum.uniq(Private.list_dirty(module) ++ Private.list_local(module))
 
-    if race_free?(module, list) do
+    unless has_race_condition?(module, list) do
       Enum.map(list, fn dirty -> work(dirty, module) end)
     end
   end

        end
      else
        # This item only exists on the FBOS side.
        # It will never be affected by the data race condtion.
        false
      end
    end)
  end

  def maybe_resync(timeout \\ @timeout) do
    if Private.any_stale?() do
      FarmbotCore.Logger.error(4, "Stale data detected. This may be related to a slow internet connection.")
      Private.recover_from_row_lock_failure()
      Process.sleep(timeout * 2)
      FarmbotCeleryScript.SysCalls.sync()

  # This function PREVENTS CORRUPTION OF API DATA. It can be
  # removed once the root cause of the data race is determined.
  #   - RC 18 May 2020
  def has_race_condition?(module, list) do
    Enum.find(list, fn item ->
      if item.id do
        if item == Repo.get_by(module, id: item.id) do
          # This item is OK - no race condition.
          true
        else
          # There was a race condtion. We probably can't trust
          # any of the data in this list. We need to wait and
