Increase in attribute limit and migration to document level translations.
I can clarify the confusion here! You're actually dealing with two different attribute limits in Sanity, and it sounds like you've mixed them up:
The Two Attribute Limits
1. Dataset-level limit (what you quoted):
- Free: 2k attributes
- Team: 4k attributes
- Business: 10k attributes
- Enterprise: 10k attributes
This is the total unique combinations of attribute names and datatypes across your entire dataset.
2. Per-document limit: 1,000 attributes
This is the limit you're hitting, and it's a hard technical limit that doesn't change with plan upgrades. According to Sanity's help documentation, this 1k per-document limit exists regardless of your plan tier.
Your Situation
With field-level localization for 25 languages in blocks, you're creating a massive number of attributes per document. If you have many fields Γ 25 languages, you'll quickly hit that 1k ceiling on individual documents.
Solutions
Since upgrading won't help with the per-document limit, consider these alternatives:
1. Document-level internationalization - Instead of having 25 language fields per block field, create separate documents for each language. This is the more common pattern and keeps documents much smaller. The Sanity documentation on attribute limits specifically addresses this under "Beware of multipliers in translation/localization" - wrapping fields in language objects multiplies your attribute count by the number of languages.
2. Reference-based translations - Store translations in separate referenced documents rather than embedding them all in one document.
3. Reduce language fields - If you don't need all 25 languages in every field, make them conditional or split content types.
The field-level locale approach you're using works for a few languages, but with 25 languages it's hitting architectural limits that payment plans won't solve. The docs explicitly warn that adding more than a few languages this way "means trouble."
Instead of duplicating fields inside a document, the recommended approach is to duplicate the document itself for each language. You can add a language field to differentiate them and make querying easier. Since you're reusing the same field structure across documents, adding an extra language no longer affects your per-document attribute count at all.
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.