Preview Link Issues
Preview link returns 403, 404, or expired token errors.
Symptom
A preview link shared with a colleague or client does not load the project. The browser shows a 403 (forbidden), 404 (not found), or an "expired" error page. Alternatively, the preview link loads but shows stale content.
Likely Causes
- Token expired: Preview links have a configurable expiration. Once the token expires, the link returns an error. Expired tokens are not recoverable.
- Token revoked or deleted: The project owner deleted the preview link before the recipient accessed it.
- Project deleted: The project associated with the preview link no longer exists. Deleting a project cascades to its preview links.
- Malformed URL: The token in the URL was truncated or modified (e.g., by a messaging app that shortens links).
- No staging deploy: The preview link shows the staging version. If no staging deploy exists, the preview has nothing to display.
Checks
- Open the preview link in a browser and note the error:
- "Preview link expired": The token's expiration time has passed.
- 404 / "Not found": The token does not match any record (deleted, never existed, or malformed).
- 403: The token is invalid or the project's access rules reject the request.
- Ask the project owner to check the preview links list in the editor. Is the link still listed? Has it expired?
- Verify the full URL was copied. Some messaging apps truncate long URLs. The token is a 64-character string.
- Check whether the project has a staging deploy. Preview links show staged content, not production.
Fixes
Generate a new link
If the token expired or was deleted:
- Open the project in the editor.
- Navigate to the preview links section.
- Create a new preview link with an appropriate expiration (the default expiration is configurable).
- Copy the full URL and share it.
Deploy to staging first
If the project has no staging deploy, deploy to staging before sharing the preview link:
- Save all files (
Cmd+Alt+S). - Deploy to staging from the deploy panel.
- Verify the staging output.
- Then create and share the preview link.
Verify the URL is complete
Ensure the full preview URL is copied. The URL format is:
https://app.odyn.dev/preview/{token}The token is a 64-character alphanumeric string. If the URL appears truncated, copy it again from the source.
Clean up expired links
Expired preview links remain in the database for 7 days after expiration (for audit purposes), then are automatically cleaned up. To manually remove expired links, delete them from the preview links list.
What to Capture for Escalation
- The full preview link URL.
- The exact error message or HTTP status code displayed.
- The approximate time the link was created and its expiration duration.
- Whether the project still exists and has a staging deploy.
- Whether other preview links for the same project work.