Skip to content

Troubleshooting

My Storyline trigger fires but nothing happens

Section titled “My Storyline trigger fires but nothing happens”
  1. Check variable names — the JavaScript code expects specific Storyline variables (e.g., userMessage, aiResponse). Variable names must match exactly what the Code Generator produced (case-sensitive).
  2. Check the trigger event — the trigger should fire on a user action (e.g., button click), not on timeline start.
  3. Check the browser console — open DevTools (F12) and look for error messages in the Console tab.
  4. Check CORS — if the SCORM package is hosted on a different domain than WordPress, add that domain to the CORS whitelist (see CORS issues).
  • Verify the slide is Published (not Draft). SlideMind only serves published configurations.
  • Check that the widget URL is correct — it should look like https://yoursite.com/?sm_widget=SLIDE_ID.
  • If embedded as an iframe, make sure the src attribute uses the full URL including https://.

The HTML Widget loads but shows “Unknown error”

Section titled “The HTML Widget loads but shows “Unknown error””

The API request failed silently. Possible causes:

  • The API key is invalid or has no credits.
  • The selected AI model is unavailable or deprecated.
  • The WordPress server cannot reach the AI provider (network issue).

Open the browser console (F12) to see the HTTP error status code.

Can I use Capture mode in the HTML Widget?

Section titled “Can I use Capture mode in the HTML Widget?”

No. Capture mode needs JavaScript access to the e-learning editor’s variables (e.g., Storyline’s GetVar() / SetVar()), which is not possible from inside an iframe due to browser sandboxing. Capture mode works only with the JavaScript integration method (Storyline, Captivate, Lectora, etc.).

How do I test my integration before deploying?

Section titled “How do I test my integration before deploying?”

Use the Sandbox (available on each slide’s edit page). It lets you send test messages and see:

  • The full AI response
  • Token counts (prompt + completion)
  • Estimated cost
  • Response time in milliseconds
  • Raw JSON output (for structured responses)

The Sandbox uses the same API path as production, so what works there will work in your e-learning module.


What is CORS and why does SlideMind need it?

Section titled “What is CORS and why does SlideMind need it?”

CORS (Cross-Origin Resource Sharing) is a browser security mechanism. When your e-learning module runs on a different domain than your WordPress site (e.g., a SCORM package on an LMS at lms.company.com calling your WordPress API at wp.company.com), the browser blocks the request unless WordPress explicitly allows it.

SlideMind includes a CORS configuration to handle this.

The error typically looks like:

Access to XMLHttpRequest at 'https://yoursite.com/wp-json/slidemind/v2/chat'
from origin 'https://other-domain.com' has been blocked by CORS policy

Fix:

  1. Go to SlideMind > Settings > Advanced > Allowed Domains (CORS).
  2. Add the domain where your e-learning module is hosted (e.g., https://lms.company.com).
  3. Save settings.

Include the protocol (https://) and do not add a trailing slash.

I’m developing locally and getting CORS errors

Section titled “I’m developing locally and getting CORS errors”

For local development, SlideMind has a CORS Test Mode:

  1. Go to SlideMind > Settings > Advanced.
  2. Enable CORS Test Mode.
  3. This temporarily allows all origins for 24 hours, then auto-expires.

Warning: Do not leave CORS Test Mode enabled in production. It allows any website to call your API.

Which domains should I whitelist for online review platforms?

Section titled “Which domains should I whitelist for online review platforms?”

If you publish your e-learning module to your authoring tool’s built-in review or hosting platform, learners (or reviewers) access the course from that platform’s domain — not yours. You need to add it to the CORS whitelist so the course can reach your WordPress API.

Authoring toolPlatformDomain to whitelist
Articulate Storyline / RiseReview 360https://360.articulate.com
Adobe CaptivateShare for Reviewhttps://captivate.adobe.com
Lectora (ELB Learning)ReviewLinkhttps://reviewlink.trivantis.com
DominKnow | ONEConveyhttps://share.cds.dominknow.one
iSpring SuiteiSpring Cloud / Spacehttps://{yourAccount}.ispringcloud.com
iSpring SuiteiSpring Learn (LMS)https://{yourAccount}.ispringlearn.com

iSpring note: Replace {yourAccount} with your actual iSpring account subdomain.

Adobe Captivate note: Adobe’s review feature also loads assets from subdomains (captivate-assets.adobe.com, elearning.adobe.com, etc.). If you have issues, you may need to whitelist additional *.adobe.com domains — see Adobe’s documentation for the full list.

To add a domain: go to SlideMind > Settings > Advanced > Allowed Domains (CORS), enter the domain (including https://), and save.

My SCORM package runs from a local file (file://) — will it work?

Section titled “My SCORM package runs from a local file (file://) — will it work?”

Browsers do not send an Origin header for file:// URLs, so CORS rules do not apply in the usual way. Many browsers also block cross-origin requests from file:// entirely. Upload your SCORM package to a web server (even a local one like localhost) for reliable testing.


SlideMind logs every AI request (successful or failed) in the Analytics page:

  1. Go to SlideMind > Analytics.
  2. Scroll to the Call Log section.
  3. Use the status filter to show only errors.

Each log entry includes: slide name, model used, token counts, estimated cost, response time, status, and error message (if applicable).

I see an error alert banner on the dashboard

Section titled “I see an error alert banner on the dashboard”

One or more AI requests failed in the last 24 hours. Click the link in the banner to go to the Analytics page and review the errors. Common causes:

  • API key expired or ran out of credits.
  • AI model was temporarily unavailable.
  • Network timeout between your server and the AI provider.

To see SlideMind’s internal log messages, enable WordPress debug mode in wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Log entries from SlideMind are prefixed with [SM] and written to wp-content/debug.log. This is useful for diagnosing database migration issues or unexpected errors.

If you see a notice about a failed migration after updating SlideMind:

  1. Check wp-content/debug.log for entries prefixed with [SM] Migration failed.
  2. Verify your database user has CREATE TABLE and ALTER TABLE permissions.
  3. Try deactivating and reactivating the plugin — this retriggers the migration.
  4. If the issue persists, contact support with the error message from the debug log.

Quick reference for error messages you may encounter:

ErrorWhereCauseFix
”Invalid or expired API key”Widget / SandboxAPI key is wrong or expiredRe-enter key in Settings, click Test Connection
”Insufficient credit on the account”Widget / SandboxProvider account has no creditsAdd credits to your AI provider account
”Rate limit exceeded”WidgetToo many requests from one IPWait 60 seconds, or increase the limit in Settings
”Connection error”Settings (key test)Server can’t reach the AI providerCheck hosting firewall, enable outbound HTTPS
”Server error, please try again later”WidgetAI provider is experiencing issuesWait and retry; check provider status page
”Configuration not found for this identifier”Widget / APISlide ID does not existVerify the config ID in the generated code
”Configuration not published”Widget / APISlide is in Draft statusPublish the slide in WordPress
”CORS blocked”Browser consoleDomain not in whitelistAdd the domain in Settings > CORS
”OpenSSL extension required”ActivationPHP OpenSSL not installedAsk hosting provider to enable OpenSSL
”SlideMind requires PHP 8.0”ActivationPHP version too oldUpgrade PHP to 8.0+

SlideMind generally coexists well with other plugins, but a few categories can cause issues:

  • Security plugins with aggressive firewall rules (e.g., Wordfence, Sucuri) — may block SlideMind’s REST API endpoints or outbound HTTP requests. Add SlideMind’s REST namespace (/wp-json/slidemind/) to the firewall whitelist.
  • Caching plugins (e.g., WP Super Cache, W3 Total Cache, LiteSpeed Cache) — may cache REST API responses, returning stale AI answers. Exclude the /wp-json/slidemind/ path from caching. SlideMind sends no-cache headers, but some caching plugins ignore them.
  • REST API restriction plugins — some plugins disable the WordPress REST API for non-authenticated users. SlideMind’s /chat endpoint must be accessible to unauthenticated requests (learners are not WordPress admin users). Whitelist the slidemind/v2 namespace.

If you run into a conflict with a specific plugin, check the browser console and wp-content/debug.log for error details.