> ## Documentation Index
> Fetch the complete documentation index at: https://friendli.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Versioning

> Use endpoint versioning on Friendli Dedicated Endpoints to track deployment history, roll back to previous configurations, and update without downtime.

export const RoundedBorderBox = ({children, caption}) => <div className="rounded-border-box">
    {children}
    {caption && <p className="text-sm text-gray-700 dark:text-gray-400">{caption}</p>}
  </div>;

Versioning lets you roll out and roll back endpoints without downtime, so you can update configurations safely and revert to a previous state whenever needed.

## Why Use Versioning

The versioning feature in Friendli Dedicated Endpoints helps you manage all changes to your deployed endpoints safely and transparently. When you update the configuration—like changing the model, engine settings, or autoscaling—a new version is created instead of replacing the current one.

* **Zero-Downtime Updates**: Safely apply changes while the current version continues to serve traffic.

* **One-Click Rollbacks**: Instantly revert to a previous stable configuration if issues occur.

* **Easy-to-Follow History**: Each version shows who made the change, when it was made, and what was changed. This makes audits and debugging easier.

Each version captures a full snapshot of the deployment, including:

* Model name and artifact source
* Accelerator type and count
* Autoscaling and engine settings
* Metadata (creator, timestamps, comments)

<RoundedBorderBox>
  <img alt="updated version configuration modal" src="https://mintcdn.com/friendliai/SRK7vx0X1v_2rjkU/static/images/guides/dedicated-endpoints/versions/v0-details.png?fit=max&auto=format&n=SRK7vx0X1v_2rjkU&q=85&s=d8a581fff482cd3fc1fc3d708aea529e" width="1348" height="1096" data-path="static/images/guides/dedicated-endpoints/versions/v0-details.png" />
</RoundedBorderBox>

## How to Use Versioning

1. **Initial Deployment**: Deploy your model for the first time via the platform or webhook. This creates version `v0`.

<RoundedBorderBox>
  <img alt="Initial version (v0) running" src="https://mintcdn.com/friendliai/SRK7vx0X1v_2rjkU/static/images/guides/dedicated-endpoints/versions/v0-running.png?fit=max&auto=format&n=SRK7vx0X1v_2rjkU&q=85&s=af94e353dec4dad2576c9b8c45e384b5" width="2102" height="1480" data-path="static/images/guides/dedicated-endpoints/versions/v0-running.png" />
</RoundedBorderBox>

2. **Apply Configuration Updates**: Changing any setting—such as model, accelerator type, or autoscaling—triggers a new version (`v1`, `v2`, etc.).

3. **Browse Version History**: View the full version list by clicking on the 'Versions' tab on the endpoint detail page. You'll see which version is current or in progress.

<RoundedBorderBox>
  <img alt="Applying version v2" src="https://mintcdn.com/friendliai/SRK7vx0X1v_2rjkU/static/images/guides/dedicated-endpoints/versions/v2-updating.png?fit=max&auto=format&n=SRK7vx0X1v_2rjkU&q=85&s=d2010ebbd8660c16c109596f1c87ad5f" width="1742" height="1400" data-path="static/images/guides/dedicated-endpoints/versions/v2-updating.png" />
</RoundedBorderBox>

4. **View Configuration Details**: Click 'View configs' to see a version’s full settings. You can see the updates from the previous version marked with a blue badge for easy comparison.

<RoundedBorderBox>
  <img alt="Viewing version v1 details" src="https://mintcdn.com/friendliai/SRK7vx0X1v_2rjkU/static/images/guides/dedicated-endpoints/versions/v1-details.png?fit=max&auto=format&n=SRK7vx0X1v_2rjkU&q=85&s=8d221992febca59f2f0b6d8038b311cf" width="1360" height="1100" data-path="static/images/guides/dedicated-endpoints/versions/v1-details.png" />
</RoundedBorderBox>

## How to Rollback to a Previous Version

To rollback, select a previous version from the version history and click 'Rollback'.

<RoundedBorderBox>
  <img alt="Rollback" src="https://mintcdn.com/friendliai/SRK7vx0X1v_2rjkU/static/images/guides/dedicated-endpoints/versions/rollback.png?fit=max&auto=format&n=SRK7vx0X1v_2rjkU&q=85&s=55a18ab018ea33acb5ecef2274b73511" width="2376" height="1488" data-path="static/images/guides/dedicated-endpoints/versions/rollback.png" />
</RoundedBorderBox>

The system creates a new version (`vN+1`) using the selected version’s settings. This new version will become the current one, allowing you to quickly revert to a known good state.

### When an Update Fails

Update failures can occur due to various reasons, such as:

* **Configuration Errors**: Invalid settings or unsupported configurations can prevent the update.
* **Resource Limitations**: Insufficient resources (like GPU availability) can block the update.
* **Network Issues**: Temporary network problems can interrupt the update process.

When you attempt to update an endpoint and the process fails, the system will not automatically apply the changes.

Instead, it will log the error and allow you to troubleshoot the issue without affecting the live endpoint. This ensures that your endpoint remains operational without disruption.
