See how we built our intranet. Live + Q&A, June 30

Translated documents deleted after translation maintenance - how to restore?

12 repliesLast updated: Dec 1, 2025

Hi Sanity. This morning we tried to fix some translation references for documents by using https://github.com/sanity-io/document-internationalization/blob/main/docs/translation-maintenance.md , with the end result that the translated documents are now completely gone (while the base translation document is still in place). The references themselves seem to still be in place in the dataset, but the actual documents are nowhere to be found.
Is there any way for us to restore these documents? Should we avoid using translation maintenance to fix translation reference issues? And/or should we use strong references to avoid similar behaviour in the future when trying to fix references?
AI Update

I'm really sorry to hear about your documents disappearing - that's definitely stressful! Let me help you understand what likely happened and how to recover your content.

Recovering Your Documents

The good news is that your translated documents are likely recoverable since Sanity maintains document history. Since the references still exist but the documents themselves are gone, they were probably deleted rather than completely removed.

Method 1: Via Studio URL

If you know the document IDs (which you can find from your translation references):

Method 2: Programmatically via History API

If you have many documents to restore, you can use the History API to batch restore them:

import {createClient} from '@sanity/client'

const client = createClient({
  projectId: 'your-project-id',
  dataset: 'production',
  token: 'your-token-with-write-access',
  apiVersion: '2025-02-19',
  useCdn: false
})

// Get document history
const history = await client.request({
  url: `/data/history/production/documents/[document-id]`,
  method: 'GET'
})

// Restore by using a previous revision (before deletion)
const previousVersion = history.documents[0] // Get the last version before deletion
await client.createOrReplace(previousVersion)

Important: Your ability to restore depends on your plan's retention period (3 days for Free, 90 days for Growth, 365 days for Enterprise), so act quickly!

What Likely Happened

Without being able to verify the exact translation maintenance documentation you followed, it sounds like the maintenance process may have inadvertently deleted your translated documents. This could happen if:

About Reference Types in Document Internationalization

Regarding your question about strong vs. weak references: The document-internationalization plugin's behavior depends on how it's configured in your schema. The key difference:

The appropriate choice depends on your use case and how the plugin is configured in your specific implementation. For translation workflows, the reference configuration affects what happens when you try to delete or modify translation relationships.

Prevention Going Forward

To avoid this in the future:

Additional Resources

For more information about restoring deleted documents, check out:

Once you restore your documents, I'd recommend carefully verifying that all translation references are correctly bidirectional (base language references translations, translations reference base) to prevent similar issues in the future.

If you continue to have trouble with the restoration or need help understanding what went wrong with your specific maintenance operation, consider reaching out to Sanity support with your project details - they can help investigate what happened and ensure your translation setup is configured correctly.

Show original thread
12 replies

Was this answer helpful?

Sanity – Build the way you think, not the way your CMS thinks

Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.

Related contributions