Migrate your runbook to Python 3.10

Microsoft is retiring the Python 3.8 runbook runtime on September 30, 2026. If Cloud Sync was set up before this change, your runbook will still runs on Python 3.8 but will not be maintained and needs migrating.

A runbook’s Python version can’t be changed after the runbook is created. Instead, you create a new runbook on Python 3.10 in the same automation account and move your schedule to it. The migration takes about 15 minutes.

Your Zivver API key, the Cloud Sync settings, and the managed identity permissions all live on the automation account, not on the runbook. Nothing has to be re-entered or granted again.

Warning
Don’t use the Deploy to Azure button to migrate
The button overwrites your Cloud Sync settings with the template defaults and resets your schedule.

Note your current settings

  1. Sign in to the Azure portal.
  2. Open the ZivverCloudSync automation account.
  3. Select Runbooks and open the runbook ZivverCloudSyncLoader.
  4. Select Schedules and open the linked schedule.
  5. Write down the values under Parameters and run settings. You need these values in Move the schedule.
Info
A schedule without perform_sync only runs in preview mode.

Leave the old runbook and its schedule in place for now, so it stays available as a fallback.

Create the new runbook

In Runbooks, select Create a runbook and fill in the form:

FieldValue
NameZivverCloudSyncLoaderPython310
Runbook typePython
Runtime version3.10
Warning
Check that the runbook page shows Python 3.10 before you continue
A wrong runtime version can’t be corrected later, only deleted and created again.

If 3.10 isn’t listed: the automation account needs a runtime environment. Select Runtime Environments, then Create. Use the name ZivverCloudSyncPython310, language Python, version 3.10, and no packages. Then create the runbook and select this environment. Newer deployments already have this environment, so reuse it if it is present.

Add the loader script

  1. Download the loader script.
  2. Open the new runbook and select Edit, then Edit in portal.
  3. Replace all contents with the downloaded file and select Save.
Warning
Don’t modify the script
It handles the certificate validation and the Cloud Sync download.

Test, then publish

  1. Open the Test pane and select Start with no parameters. Leaving out perform_sync means preview mode, so nothing is written to Zivver. A run takes a few minutes.
  2. Check that the output shows Starting Cloud Sync v..., your usual settings, no errors, and ends in preview mode.
  3. Select Publish. A draft runbook can’t be scheduled.
Note
If the test fails, stop here and send the job output to Zivver Support. Your daily sync keeps running on the old runbook.

Move the schedule

  1. Open the new runbook, select Schedules, then Add a schedule and Link a schedule to your runbook, and select ZivverCloudSyncSchedule.
  2. Under Parameters and run settings, enter the values from Note your current settings.
  3. Open the old runbook, select Schedules, and remove the link.
Warning
Check that exactly one runbook is scheduled
Two linked runbooks means two syncs a day.

Check the first scheduled run

Open the new runbook and select Jobs. The status should be Completed, and the email report arrives as usual. You can then delete the old runbook or leave it unscheduled.

Roll back the migration

If the new runbook doesn’t work as expected, reverse the steps in Move the schedule: unlink the schedule from the new runbook and link it back to the old one.

Note
Use the old runbook only as a temporary measure, because Python 3.8 is deprecated, and tell Zivver Support what went wrong.

Frequently asked questions

Can you switch an existing runbook to 3.10 instead?No, the Python version is fixed when the runbook is created.
Do you need to add Python packages to the runtime environment?No, Cloud Sync installs its own packages on every run.
Does anything synchronize differently on 3.10?No. Runbooks on 3.10 run on Linux sandboxes instead of Windows, which doesn't affect the synchronization or its duration.

Help

Contact Zivver Support with the name and runtime version of the new runbook, the ID and output of the failed job, and whether a schedule is still linked to the old runbook.