# Update a presentation without changing the link

Last verified: 2026-08-01
Canonical page: https://slidesfly.com/guides/update-presentation-without-changing-link

To update a Slidesfly presentation without changing its link, claim the deck, publish the replacement
HTML with the existing deck ID, inspect the version history, and restore a prior version when needed.
The reader URL stays stable. Restore creates a new current version instead of rewriting history.

## Reproducible source artifacts

- Version 1 source: https://slidesfly.com/examples/same-url-update/deck-v1.html
- Version 1 size: 4232 bytes
- Version 1 SHA-256: 9c2f8626ba1a3889aadf22cd98892964a330ace454a6bddfd06e1dc6878bbba8
- Version 2 source: https://slidesfly.com/examples/same-url-update/deck-v2.html
- Version 2 size: 4235 bytes
- Version 2 SHA-256: 981102c2c5eec330ca2b8ead752a8bbc18e960cbd006ae3805f1b16b1ca3ef3c
- Stable reader: https://slidesfly.xyz/d/FwT7rsuUEkiypbiG1ujAp4
- Visibility: unlisted

## Exact workflow

1. **Publish the baseline artifact:** Publish deck-v1.html, save the returned deck_id and complete reader URL, and verify the Version 1 marker before changing anything.

```bash
slidesfly publish ./deck-v1.html --title "Slidesfly same-URL update and restore proof" --json
```

2. **Claim the anonymous deck:** Sign in without auto-claim when you want to observe the explicit claim step, then claim the returned deck ID. The private claim token remains in the local CLI config.

```bash
slidesfly login --no-claim --json
slidesfly claim YOUR_DECK_ID --json
```

3. **Update the existing deck ID:** Publish deck-v2.html with --id and the original deck ID. Do not run a second create command or construct a new reader URL.

```bash
slidesfly publish ./deck-v2.html --id YOUR_DECK_ID --json
```

4. **Inspect the immutable history:** List versions and confirm that version 2 is current while version 1 remains recorded with its original size and SHA-256.

```bash
slidesfly versions YOUR_DECK_ID --json
```

5. **Restore version 1:** Restore version 1. Slidesfly creates version 3 from the old bytes instead of deleting or rewriting versions 1 and 2.

```bash
slidesfly restore YOUR_DECK_ID 1 --json
```

6. **Verify the stable reader URL:** Open the same reader URL, confirm the Version 1 marker and hash are current again, and test slide navigation before sharing.

## Observed version sequence

| Version | Result | Bytes | SHA-256 | Current after final restore |
|---|---|---:|---|---|
| 1 | Baseline publish | 4232 | 9c2f8626ba1a3889aadf22cd98892964a330ace454a6bddfd06e1dc6878bbba8 | No |
| 2 | Updated publish | 4235 | 981102c2c5eec330ca2b8ead752a8bbc18e960cbd006ae3805f1b16b1ca3ef3c | No |
| 3 | Restored from version 1 | 4232 | 9c2f8626ba1a3889aadf22cd98892964a330ace454a6bddfd06e1dc6878bbba8 | Yes |

After restore, the production reader showed the Version 1 marker and advanced from slide 1 to slide 2.

## Identity and history boundaries

- The first publish may be anonymous and unlisted. Its claim token stays in the local CLI config.
- Local anonymous updates can use the stored claim token, but account-managed versions and restore
  require the deck to be claimed by the authenticated owner.
- Restore creates version N+1 from prior bytes. It does not erase the audit history.
- Non-current version asset paths return 404. Share the stable reader URL, not an r.slidesfly.xyz
  asset URL.
- The final proof remains unlisted. A link is required to open it.

## Failure recovery

- **AUTH_REQUIRED:** The deck is not claimed and the CLI has no account credential for version history. Recovery: Log in, claim the local anonymous deck, then retry versions or restore.
- **DECK_NOT_OWNED:** The authenticated account does not own the supplied deck ID. Recovery: Use the account that claimed the deck; do not retry against another user’s deck.
- **DECK_NOT_FOUND:** The deck ID or requested source version does not exist. Recovery: Run versions with the exact deck ID and restore only a listed version number.
- **MALICIOUS_CONTENT:** The replacement artifact violates the current upload security policy. Recovery: Inspect and repair the local artifact. Do not auto-rewrite and repeatedly republish it.
- **Reader still shows old bytes:** A historical asset URL was shared, or the reader was checked before the update completed. Recovery: Share only the stable slidesfly.xyz reader URL and verify the current version response.

## Verification boundary

- Tested with Slidesfly CLI 0.1.3 on 2026-08-01.
- Cloudflare Browser Insights injected an opaque-origin RUM request that failed CORS. It did not block rendering or navigation and was not declared by the deck.
- This proof verifies the linked single-file deck. Access, expiry, deletion, and moderation policy
  still determine whether a reader remains available.

## Continue

- Publish and claim: https://slidesfly.com/docs/quickstart
- CLI reference: https://slidesfly.com/docs/cli
- Publish one HTML deck: https://slidesfly.com/guides/publish-html-presentation-online
- Security architecture: https://slidesfly.com/security
