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

# Troubleshooting Premove ITN

> Resolve common Premove ITN model, device, input, and output issues.

## Why was my text left unchanged?

Leaving text unchanged is a valid decoding path. Premove ITN selects a
replacement only when its score beats `KEEP` while remaining compatible with
the other selected edits.

## Why can Premove ITN not produce a specific format?

The scorer can select only outputs generated by the deterministic Rust layer.
Check [Supported forms](/itn/docs/supported-forms) and the exhaustive
[Rust candidate coverage](/itn/docs/internals/rust-candidate-coverage).

## Why is the first request slow?

The first request can include a model download and model initialization. These
are separate from warm inference. Load one instance during service startup and
reuse it. See [Deployment](/itn/docs/deployment).

## Why is the first download about 1.6 GB?

Premove ITN uses a 435.6-million-parameter DeBERTa-v3-large contextual scorer.
Hugging Face caches the pinned model files after the first download.

## Does Premove ITN work with Deepgram, AssemblyAI, or Whisper?

Premove ITN consumes transcript text and does not depend on an ASR provider.
Pass the provider's transcript string to `normalize()`.

## Why did device selection fail?

An explicit `mps` or `cuda` selection fails when that backend is unavailable.
Use `device="auto"` for automatic selection or choose `cpu`. An exposed device
option is not necessarily a validated release platform; see
[Platform support](/itn/docs/internals/platform-support).

## Why was a long input rejected?

When text has normalization candidates, an input longer than 512 DeBERTa
encoder tokens is rejected instead of being silently truncated. Text with no
candidates returns unchanged before tokenization. Split long material at
transcript or sentence boundaries.
