rootElement you provide, and your application callbacks. When one of these components is misconfigured, you may see symptoms such as the UI not rendering, the dictation window closing immediately, or layout issues instead of a specific error.
To troubleshoot efficiently, work through this guide in the following order:
- Runtime (browser compatibility and initialization timing).
- Layout (
rootElementand CSS). - Authentication and Content Security Policy (CSP).
- Configuration and callbacks.
AuthConfig and ShowOptions property, see Configuration.
Runtime requirements
The Dictation SDK is built for in-browser embedding. It is not a Node-only or server-rendered iframe product.Supported Environments
Browser environments where you can create an
HTMLIFrameElement, use postMessage, and measure a DOM containerNot Supported
Using Node.js as the environment that hosts
DictationClient or the Dictation iframe
Relying on SSR alone to render Dictation; initialize and call show() on the client after the document (and your rootElement) existThe SDK Expects
- A real
HTMLIFrameElement(the SDK creates and manages it inside your container). postMessagebetween your page and the hosted UI.- Layout information so the iframe can size to
rootElement.
Dictation runs in the browser only. The iframe is not created during SSR or on the server.Call
show() only after rootElement points at an element that already exists in the DOM and has been laid out (so it has a real size). If you call too early, rootElement may be null or zero height.- React integration for
DictationProviderandDictation. - Configuration examples for sample
rootElementwiring.
Layout and root element related issues
The iframe fills the layout box of the element you pass asrootElement. Common mistakes are as follows:
- A zero-height parent.
- A flex or grid child that shrinks to zero.
overflow: hiddenon a parent that clips the overlay.
Recommended approach
- Use a dedicated wrapper around the Dictation region, not the raw
<textarea>asrootElement, unless you are sure that node has a stable box. - Give the wrapper a defined height or
min-height, and usuallyposition: relative.
Authentication and CSP related issues
Configuration related issues
Wrap show() in try / catch
DictationClient.show() can throw or reject when configuration or auth fails before the session is usable. Wrapping the call helps you log and surface errors in your own UI.
JavaScript
Troubleshooting
Below are some other common issues and how to troubleshoot them.Dictation UI Not Visible
Dictation UI Not Visible
Check, in roughly this order:
- Container height and
positiononrootElementand parents (Wrapper layout). - Browser devtools for blocked iframe requests or CSP violations.
- That
rootElementis notnulland matches the node you intend. - Authentication: failed login or bad tokens (refer to Authentication guide).
Dictation Closes Immediately
Dictation Closes Immediately
This usually means
onSubmit is missing or not wired correctly. The hosted UI expects a handler when the user commits. Refer to Callbacks and Configuration guides for more details.Multiple Overlays or Duplicate Sessions
Multiple Overlays or Duplicate Sessions
Create one
DictationClient (with one SukiAuthManager) per page scope, and drive which field is active with your own state (for example a single activeFieldId). Multiple clients can each try to mount Dictation. Refer to JavaScript integration and React integration guides for more details.