Splitworthy documentation

Troubleshooting & release checklist

Debug connection, missing exposures, CSP, SPA behaviour and safe shutdown.

Script, config and events

Script 404: check that the release is actually published and that its versioned path exists. Configuration missing: check API origin, public site ID, verified domain, website enable state and statistics consent. Empty configuration: check that the experiment is launched.

Use your browser network tools to inspect /api/public/sdk/config and /api/public/sdk/events. Requests returning successfully do not establish a recorded conversion; confirm counts through Results. Network failure or malformed configuration leaves the original usable.

A variation or conversion is missing

Content: check exact original text, unique target, expected element kind, pathname and the 350ms delivery window. Avoid nested interactive markup or late delayed rendering. Developer: check exact key, a launched developer-controlled test and real exposure after rendering.

Conversions: check goal name/type/path, existing valid exposure, consent and 30-day attribution. Clearing storage, a stopped experiment or a mismatched revision prevents attribution. One visitor clicking repeatedly is intentionally one unique conversion.

SPA: the core handles pathname navigation; the React adapter does not reliably rerender on later configuration changes. Treat that as an integration limitation, not evidence that the event backend is broken.

Content Security Policy and optimisation

Allow the actual platform origin in connect-src and the SDK asset origin in script-src. Authorise inline settings using your own nonce/hash policy. The targeted protection uses an inline style element without a configurable nonce: restrictive style-src can prevent that protection. Do not weaken your policy with blanket unsafe-inline just to hide flicker.

Load early, avoid duplicate SDK instances and exclude the script from optimiser delays. Test the actual CSP and caching plugins on your site. No arbitrary remotely configured JavaScript executes through experiment rules.

Failure, pause and emergency disable

Pause/end an experiment or disable website testing in your account. WordPress also has a local emergency switch. The foreground core refreshes uncached configuration every 30 seconds plus request time; background throttling prevents an exact wall-clock guarantee. No push-based instantaneous shutdown is claimed.

Content changes are restored on invalid/unavailable/disabled configuration. Native developer-rendered content is controlled by your app: implement unavailable and withdrawal fallbacks, especially with the current React adapter.

Before production

Verify domain and installed version. Confirm release URLs return the expected JavaScript, not login HTML. Test consent denied/granted/withdrawn, storage blocked, network failure, unknown key and disabled website.

Confirm stable A/B assignment, both genuine exposures, real successful goals, results read-back, duplicate suppression and navigation. For React test Strict Mode, conditional visibility, revision changes and fallback. For SSR compare server markup and first client render.

Use an authorised staging site before affecting live visitors. Repository tests and example code are not proof of an external installation. Native React and real-domain end-to-end validation remain incomplete; record what was tested, what failed and what needs external access.