Skip to content
Menu

SNAPSHOT_NOT_FOUND

The SNAPSHOT_NOT_FOUND error occurs when a Sandbox tries to resume from a snapshot that is gone — typically because the snapshot expired and was deleted, was deleted explicitly, or never existed. This most commonly surfaces on Sandbox.get({ name }) or any SDK call that auto-resumes a stopped persistent Sandbox, and on Sandbox.create({ source: { type: 'snapshot', snapshotId } }) when the referenced snapshot ID is invalid.

410

SNAPSHOT_NOT_FOUND:

Gone

AI Assistance

I'm encountering an error and reviewing the docs at https://vercel.com/docs/errors/SNAPSHOT_NOT_FOUND.md to understand what's happening. Please help me resolve this by: 1. **Suggest the fix**: Analyze my codebase context and propose what needs to be changed to resolve this error. If you do not have access to my codebase, ask me for the codebase and try to fix the error based on the information you have. 2. **Explain the root cause**: Break down why this error occurred: - What was the code actually doing vs. what it needed to do? - What conditions triggered this specific error? - What misconception or oversight led to this? 3. **Teach the concept**: Help me understand the underlying principle: - Why does this error exist and what is it protecting me from? - What's the correct mental model for this concept? - How does this fit into the broader framework/language design? 4. **Show warning signs**: Help me recognize this pattern in the future: - What should I look out for that might cause this again? - Are there similar mistakes I might make in related scenarios? - What code smells or patterns indicate this issue? 5. **Discuss alternatives**: Explain if there are different valid approaches and their trade-offs My goal is to fix the immediate issue while building lasting understanding so I can avoid and resolve similar errors independently in the future.

To troubleshoot this error, follow these steps:

  1. Recreate the Sandbox with getOrCreate: Sandbox.getOrCreate handles this case for you: if the named Sandbox exists but its snapshot expired, the SDK deletes the stale Sandbox, re-creates it with the same name, and fires onCreate. Use it instead of Sandbox.get for long-lived workflows.
  2. Check the snapshot retention policy: If the snapshot was created automatically on shutdown, its TTL is governed by the Sandbox's snapshotExpiration and keepLastSnapshots settings. Loosen them if your workflow needs to resume after long idle periods.
  3. Verify the snapshot ID: For Sandbox.create({ source: { type: 'snapshot', snapshotId } }), confirm the snapshot still exists with sandbox snapshots get <snapshot-id> or Snapshot.get({ snapshotId }). To spawn a new Sandbox from another Sandbox's current snapshot without tracking IDs, use Sandbox.fork instead.
  4. Inspect the Sandbox dashboard: Navigate to the Sandboxes dashboard and review the Sandbox's snapshot history.

Was this helpful?

supported.