         for cmd of deviceCustomCommands
           actions.deletedObjects ?= []
           actions.deletedObjects.push("_customCommands.#{cmd}")
+
+        # clear presets hash if parameters are potentially modified
+        if _tasks.length > 0
+          db.redisClient.del("#{currentRequest.deviceId}_presets_hash", (err) ->
+            throw err if err
+          )
 
         apiFunctions.insertTasks(_tasks, {}, () ->
           updateAndRespond()

        writeResponse(currentRequest, res)
      )

    if res == informHash
      return updateAndRespond()

    # populate projection and parameterStructure
    parameterStructure = {}

  actions.set._lastBoot = now if '1 BOOT' in cwmpRequest.methodRequest.event
  actions.set._lastBootstrap = lastBootstrap = now if '0 BOOTSTRAP' in cwmpRequest.methodRequest.event

  db.redisClient.get("#{currentRequest.deviceId}_inform_hash", (err, oldInformHash) ->
    throw err if err

    updateAndRespond = () ->
      updateDevice(currentRequest, actions, (err) ->
