> ## Documentation Index
> Fetch the complete documentation index at: https://sdk.revise.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Support

> How to report a problem, and what to send with it.

Email [sdk@revise.io](mailto:sdk@revise.io). `npm bugs @reviseio/sdk` opens the
same route.

Response times, escalation paths, and any service commitments are part of your
licence agreement rather than this page — talk to us about your requirements
and we will put them in writing.

## What to include

The SDK reports its own identity. Attaching it turns "the editor broke" into
something reproducible:

```ts theme={null}
import { REVISE_SDK_VERSION, REVISE_SDK_BUILD } from "@reviseio/sdk";

console.log(REVISE_SDK_VERSION, REVISE_SDK_BUILD); // "0.3.3" "f7dc7173"
```

Wire those into your error reporting once and every report carries them.
Beyond that:

* **What you did**, in the order you did it. "Opened a .docx with tracked
  changes, accepted the second one, exported" beats "accept is broken".
* **The document**, if you can share it. Fidelity bugs are almost always
  specific to a file, and a redacted copy that still reproduces is worth more
  than a description.
* **Browser and version**, and whether it reproduces in another.
* **Anything in the console**, including warnings before the error.

## Before you write

A few problems have well-known causes and a faster fix than a support round
trip:

<AccordionGroup>
  <Accordion title="Unexpected content type in insert operation">
    Two copies of Yjs. It identifies its own types with `instanceof`, so a
    shared document rejects nodes built by the other copy. `npm ls yjs` should
    show exactly one. See [collaboration](/guides/collaboration#one-copy-of-yjs).
  </Accordion>

  <Accordion title="Revise document … is still opening">
    The handle was used before a document existed. `onReady` fires before the
    first document opens — subscriptions are safe to place immediately, but
    anything that acts on a document needs `onDocumentReady` or
    `await editor.whenReady()`.
  </Accordion>

  <Accordion title="Suggestions are authored by “Anonymous”">
    No `currentUser` was passed. Authorship is stamped when an edit is made,
    not at export, so this cannot be corrected afterwards — set it before
    anyone types.
  </Accordion>

  <Accordion title="A move came back as a delete plus an insert">
    Expected. Word records a move as a linked `moveFrom`/`moveTo` pair; we
    record the same edit as a deletion and an insertion, which Word reads
    correctly but does not label as a move. See [tracked
    changes](/guides/tracked-changes) for exactly what survives the round trip.
  </Accordion>

  <Accordion title="404 installing the package">
    npm reports private packages you cannot see as 404 rather than 403. The
    scope is not routed, or the token is not being read — see
    [access](/access#troubleshooting).
  </Accordion>
</AccordionGroup>

## Security

Report suspected vulnerabilities to [sdk@revise.io](mailto:sdk@revise.io) with
"security" in the subject. Please do not open them anywhere public first.
