# Unknown Portable Text values no longer crash the editor, plus auth, release, and presence fixes

**Version:** v6.16.0

**Published:** September 22, 2026

This release stops the Portable Text Editor from crashing on content the schema no longer covers, and marks unknown values so authors can see and resolve them. It also deprecates the `createAuthStore` helper in favor of the `auth` config key, and fixes restore to revision inside content releases, perspective handling for published and archived releases, and presence in the editor.

## Mark schema-less Portable Text values with a visible affordance

Fixes a problem where a Portable Text Input could crash if it contained lists or styles unknown to the schema. Unknown marks, annotations, list items and styles are now preserved in the editor and marked with a dotted outline and a tooltip naming what is missing from the schema.

## Deprecations

`createAuthStore`, as imported from `sanity`, now carries `@deprecated`. Configure custom auth via the `auth` config key with an `AuthConfig` object instead. The helper still works. For the full set of options, see [Custom authentication](https://www.sanity.io/docs/studio/custom-auth).

**sanity.config.ts (before)**

```typescript
import {createAuthStore, defineConfig} from 'sanity'

export default defineConfig({
  projectId: 'YOUR_PROJECT_ID',
  dataset: 'production',
  auth: createAuthStore({
    projectId: 'YOUR_PROJECT_ID',
    dataset: 'production',
    redirectOnSingle: true,
    providers: [
      {
        name: 'saml',
        title: 'My Company SSO',
        url: 'https://url.to.other.login',
      },
    ],
  }),
})
```

**sanity.config.ts (after)**

```typescript
import {defineConfig} from 'sanity'

export default defineConfig({
  projectId: 'YOUR_PROJECT_ID',
  dataset: 'production',
  auth: {
    redirectOnSingle: true,
    providers: [
      {
        name: 'saml',
        title: 'My Company SSO',
        url: 'https://url.to.other.login',
      },
    ],
  },
})
```

## 🐛 Notable bugfixes and improvements

- **Document history:** Restore to revision now works when the document is opened in a content release perspective. Restore writes only the release's version document, leaving draft and published untouched, and creates the version if the release does not contain the document yet. Previously this failed with `409 documentAlreadyExistsError` for documents that were already part of the release.
- **Content Releases:** Studio now unpins the perspective for a [content release](https://www.sanity.io/docs/studio/content-releases-configuration) and shows a warning toast when that release has been published or archived. Document versions that are not in releases, for example agent bundles, keep their selected perspective.
- **Portable Text presence:** Presence in the Portable Text Editor now follows the collaborator's cursor. While the cursor is in view the colored cursor marks it. When it scrolls out of the field or out of the pane, an avatar docks at the nearest edge with an arrow pointing back to where the person is editing.
- **Field presence:** Fixes the presence avatar overlapping the field actions when hovering a field.

