Skip to main content

How versioning and revert work

Functions are versioned automatically. Changing a function's code or configuration records a snapshot, so you can see what it looked like at any point and tell which version produced a given execution.

What creates a version​

A version is created only when one of these fields actually changes:

Fields
What runscode, filter_conditions
How it is deliveredwebhook_url, auth_config, headers, config
How it behavesexecution_mode, is_active, async_mode
What it is calledname, description

Saving without changing any of them records nothing and leaves the counter where it is, so history reflects real changes rather than every write.

That has a visible effect on the response. An update that changes nothing returns HTTP 200, with a body reporting No changes detected, version unchanged.

A 200 does not always mean the function changed

Check the response body rather than the status code when you need to know whether an update took effect.

Which version ran​

Each invocation record stores the version that executed, so a run from three weeks ago traces to the exact code that produced it even though the function has changed since.

Reading a single run through the function's own endpoint returns that code directly, which is quicker than reconstructing it from history.

What revert restores​

Revert takes a version and restores two fields:

Fields
Restored from the chosen versioncode, filter_conditions
Left at their current valuesname, webhook_url, auth_config, headers, config, execution_mode, is_active, async_mode, description
Revert can produce a combination that never existed

If the configuration changed after the version you are restoring, you get the old code running against today's configuration. Check what else changed before you rely on a revert.

Revert also moves the counter forward. Restoring version 3 of 7 produces version 8, because restoring the code is itself a change. History is append-only: nothing is rewritten or removed.

Before you revert​

  • Read the history and check what changed besides code.
  • Restore any webhook URL or execution configuration explicitly afterwards.
  • Prefer editing code alone for changes you may want to undo, so a revert restores everything that changed.

Deleting a function deletes its history, along with its runs and schedules. History does not survive the function.