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 runs | code, filter_conditions |
| How it is delivered | webhook_url, auth_config, headers, config |
| How it behaves | execution_mode, is_active, async_mode |
| What it is called | name, 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.
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 version | code, filter_conditions |
| Left at their current values | name, webhook_url, auth_config, headers, config, execution_mode, is_active, async_mode, description |
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.