Quick Diagnosis
Before diving into specific issues, perform a basic check:
- Open the page with the widget.
- Press F12 (or Cmd+Option+I on Mac) -> Console tab.
- Look for errors related to
tikento,widget.js,CSP, orCORS. - Check the Network tab -- find the request to
tikento.com/widget.jsand confirm the status is 200.
Problem: Widget Does Not Load at All
Cause 1: Content Security Policy (CSP) Blocks the Script
Symptoms:
- The form does not appear.
- In the console:
Refused to load the script 'https://tikento.com/widget.js' because it violates the following Content Security Policy directive: "script-src ...".
Solution:
Add tikento.com to the script-src directive in your CSP policy:
script-src 'self' https://tikento.com;
If you use a meta tag:
<meta http-equiv="Content-Security-Policy"
content="script-src 'self' https://tikento.com;">
You may also need to add connect-src https://tikento.com for widget API requests and style-src 'unsafe-inline' https://tikento.com for styles.
Cause 2: Incorrect eventId
Symptoms:
- The script loads (200 in Network), but the form does not render.
- In the console:
[tikento] Event not foundor[tikento] Invalid eventId format.
Solution:
- Open the event in the tikento dashboard.
- Go to the Registration -> Widget for Website tab.
- Copy the correct UUID from the field or from the ready-made widget code.
- Make sure the
data-tikento-widgetattribute contains exactly the UUID with no spaces or extra characters.
<!-- Correct -->
<div data-tikento-widget="550e8400-e29b-41d4-a716-446655440000"></div>
<!-- Incorrect -->
<div data-tikento-widget="YOUR_EVENT_ID"></div>
Cause 3: Script Not Included or Included Twice
Symptoms:
- The container
divis on the page, but the form does not appear. - No errors in the console, no request to
widget.jsin Network.
Solution:
Make sure the <script> tag is present on the page and loads exactly once:
<script src="https://tikento.com/widget.js" async defer></script>
Some website builders (Tilda, Wix) require adding scripts in special blocks. See Installing on Tilda, Webflow, Wix.
Problem: CORS Errors
Symptoms:
- The form starts loading, but data (fields, tickets) is not pulled in.
- In the console:
Access to fetch at 'https://tikento.com/api/...' from origin 'https://your-site.com' has been blocked by CORS policy.
Solution:
On Pro and higher plans, you need to add your website's domain to the allowed origins list:
- In the dashboard: event -> Registration -> Widget -> Allowed Domains.
- Add your website's domain (e.g.,
example.comor*.example.com). - Click Save.
Changes take effect within one minute (after cache invalidation of widget:origins:{eventId}).
On the Free plan, CORS restrictions are not applied -- the widget works on any domain.
Learn more -- CORS Setup.
Problem: Widget Styles Are Broken
Inherited CSS Properties
Shadow DOM isolates most styles, but some CSS properties are inherited across the Shadow DOM boundary:
font-family,font-size,line-heightcolordirection,text-alignvisibility
If your CSS reset sets aggressive values on body or *, it may affect the widget.
Solution:
Set the widget's CSS variables explicitly to override inherited values:
:root {
--tikento-font: 'Inter', sans-serif;
--tikento-text: #18181B;
}
Widget Container Is Collapsed or Invisible
Symptoms:
- The widget renders with 0 height or 0 width.
- The form is clipped.
Solution:
Check that the parent element of the data-tikento-widget container does not have:
overflow: hiddenwith a fixed heightdisplay: noneorvisibility: hiddenmax-height: 0orheight: 0position: fixed/absolutewithout specified dimensions
The widget container needs a minimum free width of 320px.
Problem: Old Version of the Form Is Displayed
Symptoms:
- You updated fields or tickets in the builder, but the widget on your site shows the old version.
Solution:
- Browser cache. Press Ctrl+Shift+R (or Cmd+Shift+R on Mac) for a hard reload.
- CDN / hosting cache. If your site is behind Cloudflare or a similar CDN, clear the cache for the page with the widget.
- tikento Redis cache. Widget configuration is cached with a TTL of 300 seconds (5 minutes). If more than 5 minutes have passed and changes haven't appeared -- contact support.
The widget.js script loads with the Cache-Control: no-cache header -- it is always fresh. But the form configuration (fields, tickets, options) is cached on the tikento side.
Problem: Widget Does Not Work in Popup Mode
Symptoms:
- The button with
data-tikento-popupdoes not open the form when clicked.
Solution:
- Make sure the
widget.jsscript is loaded on the page. - Check that the
data-tikento-popupattribute contains a valid event UUID. - If the button is added dynamically (via a JS framework), make sure it is present in the DOM when the widget initializes, or call
window.tikento?.refresh()after adding it.
Console Errors: Reference
| Message | Cause | Action |
|---|---|---|
[tikento] Event not found | Invalid eventId or event deleted | Check the UUID |
[tikento] Event not published | Event is in draft status | Publish the event |
[tikento] Origin not allowed | Domain not in allowlist (Pro+) | Add domain in settings |
[tikento] Widget init failed | Initialization error | Check CSP, Network |
Refused to load the script... | CSP blocks | Update CSP policy |
CORS policy | Domain not allowed | Configure CORS |
Still Not Working
If the issue persists after all checks:
- Take a screenshot of the console errors (Console tab).
- Copy the URL of the page where the widget is installed.
- Note your browser and its version.
- Send everything to support via the dashboard (Help -> Contact Support) or to support@tikento.com.