> For the complete documentation index, see [llms.txt](https://learn.mechanic.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.mechanic.dev/resources/task-library/updating-tasks.md).

# Updating library tasks

Review and apply library updates to one task or several copies while keeping each copy's saved options.

When you install a task from the [task library](/resources/task-library.md), you get your own copy. Later library changes aren't applied to that copy automatically. You can review an available update in Mechanic and choose when to apply it.

You can update one task, all installed copies of a particular library task, or a selection from your task list. Mechanic checks each copy before updating it.

The screenshots below use an example store with several copies of library tasks.

## What an update changes and preserves

Each copy keeps its name, saved option values, enabled or disabled state, and tags. Its previous code, documentation, and settings remain in its version history.

The update replaces the library's code, documentation, and related execution settings, such as subscriptions, JavaScript, sequencing settings, and preview definitions. It also upgrades older Shopify API versions to the version Mechanic uses for newly installed tasks. If you have selected a newer API version or `unstable`, that selection is kept. The updated code is previewed and saved using the resulting version. Documentation and API version changes appear in the review alongside code changes.

Mechanic offers this update only when your copy's code and execution settings match a known library version and the new version uses the same option fields. An update can also be available when the code is already current but the documentation differs. A newer default Shopify API version alone doesn't create a library update notice.

If you've added your own notes to the task's documentation, review the documentation changes before updating. The update replaces those notes with the library's documentation; the previous documentation remains in version history.

Changing option values or renaming a task doesn't by itself prevent an update. For example, if you have a separate copy of **Maintain inventory for a product bundle** for each bundle, each eligible copy keeps its own bundle settings when updated.

Changes you've made to the code or execution settings can require individual attention. Mechanic doesn't automatically merge custom code with library changes.

## Update a single task

1. Open the task in Mechanic. If it shows **Library update available**, click **Review update**. Save or discard any unsaved edits first.

   ![The task editor shows a Library update available banner above the saved bundle options.](https://3145272362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQrnkixbmVHvKHMwAbm%2Fuploads%2Fgit-blob-2dcd86d4d13c3e30d5edf5bae36281360d26651f%2Ftask-library-single-notice.png?alt=media)
2. Expand **Review changes for…** to inspect the differences. Removed lines are red with a minus sign (`-`); added lines are green with a plus sign (`+`). Opening the review doesn't save anything. When you're ready, click **Update 1 task**.

   ![The single-task review shows the code differences and the Update 1 task button.](https://3145272362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQrnkixbmVHvKHMwAbm%2Fuploads%2Fgit-blob-786ea81fc2ad16e6bff15fe6643796652c4a25a7%2Ftask-library-single-review.png?alt=media)
3. Check that the result says **Updated**, then click **Done**. The update notice clears from the editor.

   ![The completed single-task review confirms that one task was updated.](https://3145272362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQrnkixbmVHvKHMwAbm%2Fuploads%2Fgit-blob-539f2958233ad17b17c6a75dfdd32d6289d7b584%2Ftask-library-single-result.png?alt=media)

An available library update doesn't always mean your copy is eligible to apply it. When individual review is needed, the notice explains why instead of offering the update button.

## Update copies of one library task

Use this when you have several copies of the same task, even if you've renamed them or they use different older versions.

![The task list shows update indicators and the Review library updates button.](https://3145272362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQrnkixbmVHvKHMwAbm%2Fuploads%2Fgit-blob-9c607024e0e3f1fdbc20e32d15ed95cb98b9e3ba%2Ftask-library-task-list.png?alt=media)

1. On Mechanic's home screen, click **Review library updates** above the task list. This appears when linked library tasks have available updates.
2. Find the library task you want to update. Its group shows how many installed copies are eligible, need individual review, or are already up to date.

   ![The library-task chooser shows five copies: two eligible, one needing individual review, and two up to date.](https://3145272362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQrnkixbmVHvKHMwAbm%2Fuploads%2Fgit-blob-03cc2fbe99beeea1d56ac2cd6f531ad870155c72%2Ftask-library-bulk-chooser.png?alt=media)
3. Click **Review copies** (the button includes the number of copies). Mechanic checks each copy and shows which are ready.
4. Expand **Review changes for…** beneath a task to inspect the changes. Opening this review doesn't save anything.

   ![The bulk review shows which individual copies are ready, already up to date, or need review.](https://3145272362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQrnkixbmVHvKHMwAbm%2Fuploads%2Fgit-blob-92b133077e09f4bc2c91e201a796cf4e52d21750%2Ftask-library-bulk-review.png?alt=media)
5. Click **Update N tasks**, where N is the number ready to update. Keep the window open until processing finishes, then check the results for each copy.

   ![The completed bulk update confirms two updates and three skips, with a result for each copy.](https://3145272362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQrnkixbmVHvKHMwAbm%2Fuploads%2Fgit-blob-018f68a879e70c34efe4ebfb593654af736b527c%2Ftask-library-bulk-result.png?alt=media)

In this example, **Spring gift set** was updated individually first. The bulk update then updates **Refill pack** and **Holiday gift set**, skips the customized **VIP gift set**, and leaves the two current copies unchanged.

The group includes all copies linked to that library task, including renamed and disabled copies, regardless of the current task-list search. It doesn't group unrelated tasks just because they have the same name. A copy Mechanic hasn't linked to the library won't appear in that group.

Only ready copies are updated. Copies that need individual review are skipped, and disabled copies stay disabled. You can open the review even when all copies need individual attention. Automatic updates are available only for eligible copies.

## Update a selection of tasks

Select the tasks using the checkboxes in the task list, then choose **Update from library** from the bulk actions menu. At least one selected task must have an eligible update for this action to be available.

![Two tasks are selected, with Update from library available in the bulk actions menu.](https://3145272362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQrnkixbmVHvKHMwAbm%2Fuploads%2Fgit-blob-436f8238421cf7d0d2a6ad69659dc2c22c2f6e9d%2Ftask-library-selection.png?alt=media)

The review works the same way as the library-task group: inspect the changes, apply updates to the ready copies, and check the results. Selected tasks can come from different library tasks.

## When a task needs individual review

Click the title of a task marked **Needs review** in the review window to open that task in a new tab. You can inspect its code and options while keeping the original review open. Any updates already running continue in the original tab.

Mechanic may leave a copy unchanged for several reasons:

* **Code or settings don't match a known library version.** The copy may have been customized, or Mechanic may be unable to recognize its version. This message doesn't necessarily mean you changed it.
* **The update changes the available options.** The new version needs a different set of settings, so it needs individual configuration.
* **Library history is still being checked.** Try again later.
* **The task isn't linked to the library, or the library task is no longer published.** Mechanic can't offer a library update for that copy.
* **The task or library version changed after review.** Close the review and open it again to check the latest version. Reviews also expire after one hour.
* **The preview or permissions check couldn't complete.** Follow the message shown for that task before trying again.

For a library task you haven't customized, [contact support](/support.md) if you're unsure how to proceed. If you've changed its code, work with its author or see [Get help with a custom task](/custom-help.md) to combine your changes with the library update.

## Clear an update you've handled yourself

After manually updating a customized copy, open **Review library updates**, choose its library task, and click **Dismiss this update** beneath that copy. This clears the current notice from the list and task editor for everyone using your store. It doesn't change the task's code or settings, or confirm that your custom code matches the library.

Other copies keep their own notices. A different library version will appear again when its code, documentation, or related settings change. Changing your copy's name or option values doesn't bring back the dismissed notice.

![A review with two customized copies shows a separate Dismiss this update action beneath each one.](https://3145272362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQrnkixbmVHvKHMwAbm%2Fuploads%2Fgit-blob-415f997d4036ad9e16741bd55f48c8aeda22db0d%2Ftask-library-dismiss-update.png?alt=media)

## If only some updates finish

One skipped or unsuccessful copy doesn't stop the others from updating. Check the result beside each task.

If a result says the update couldn't be confirmed, use **Retry unconfirmed updates** in the same review window. This checks or finishes the same update. If you closed the window or lost your connection, reopen the review to check the tasks' current state; successfully updated copies will be up to date.

## How you're notified

* **In the task list:** update indicators identify tasks with available updates or copies that need individual review. **Review library updates** lets you browse updates by library task.
* **In the task editor:** a **Library update available** banner links to the library task and offers **Review update** when your copy is eligible. Otherwise, it explains what needs attention.
* **By email:** Mechanic can include eligible task updates in its daily notification email, with links to open the tasks. These emails go to the **System contact email** configured in [Settings](/app/settings.md), or your store's Shopify email address if no system contact email is set.

![An example daily notification email lists a task update and an Open to apply update link.](https://3145272362-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQrnkixbmVHvKHMwAbm%2Fuploads%2Fgit-blob-84443911c8a88f53d61f4ad1201a2ec385e9b01f%2Ftask-library-email.png?alt=media)

Open the task in Mechanic to see its current update status and review the changes. You choose whether and when to apply the update.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://learn.mechanic.dev/resources/task-library/updating-tasks.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
