Debugging
In-page debug panel
The UI core includes a diagnostics panel that shows registered plugins, last enhanced instances, and captured runtime errors.
Enable it by either:
- Adding
?readyeditorDebug=1to the page URL, or - Running
localStorage.readyeditorDebug = "1"in the browser console
Console inspection
// All active instances
ReadyEditor._instances
// Get a specific instance
ReadyEditor.getInstance()
ReadyEditor.getInstance('.my-editor')
// UI debug state
ReadyEditorUI.debug.state()
Common issues
Editor doesn't appear
- Check that the selector in
data-selectormatches an element that exists in the DOM when the script runs. - Open the browser console and look for
[ReadyEditor]error messages. - Check the Network tab for a failed request to
/api/v1/editor/init.
Init request fails
Check the error field in the init response:
| Error | Cause |
|---|---|
missing_api_key |
data-api-key is empty or missing |
invalid_api_key |
The key doesn't exist or is inactive |
domain_not_allowed |
The requesting domain isn't in your project's allowed list |
project_inactive |
The project is disabled in the dashboard |
subscription_blocked |
Subscription is canceled or unpaid |
For domain_not_allowed: check what domain was detected (it's in the response as "domain"). Common causes include missing www. or a mismatch between the page origin and the CDN origin.
Plugins listed but not appearing
If the debug panel shows a plugin as registered but its toolbar buttons don't appear, the plugin's name is probably not in the features list returned by init. Check the init response in the Network tab.
Toolbar icons are missing
Toolbar buttons use Remix Icon classes (e.g. ri-bold). Make sure the Remix Icon CSS is loaded on your page:
<link href="https://cdn.jsdelivr.net/npm/remixicon@3/fonts/remixicon.css" rel="stylesheet">
Alternatively, enable data-load-css="1" on the loader tag — the editor CSS bundle loads the icon font automatically.
SRI errors in the console
If you see Integrity check failed errors, either:
- The asset was loaded from a different origin than the manifest expected, or
- You're testing locally without serving assets through a CDN
Set data-require-sri="0" to disable SRI enforcement during local development.
Paste doesn't work from the toolbar
document.execCommand('paste') is blocked by all modern browsers. The clipboard plugin uses navigator.clipboard.readText() when available (requires HTTPS and user permission), and falls back to a modal asking the user to paste manually.
This is expected browser behavior. Ctrl+V / Cmd+V paste directly into the editor always works.